在使用automatic VS2017
tools为.Net Standard
2.0中的类库创建新模板时,会出现此问题。从该模板创建新项目时,不会复制源文件(.cs)。
虽然我需要复杂的模板,但我会用最简单的例子来解释这个问题。
创建一个新模板: new Project在VS2017
中,选择类库.NET Standard
。在这个“空”项目中,创建模板,单击Project>Export Template> chose the created project, and then finish.
从最近创建的模板创建新项目:添加新项目,选择新模板,然后接受。
生成的新项目没有该项目的源文件(.cs)。
这显然是一个问题,因为对类库执行完全相同的操作,即.NET Framework
工作得很好。
Classlibrary1.csproj
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>
MyTemplate.vstemplate
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
<TemplateData>
<Name>ClassLibrary1</Name>
<Description><No description available></Description>
<ProjectType>CSharp</ProjectType>
<ProjectSubType>
</ProjectSubType>
<SortOrder>1000</SortOrder>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>ClassLibrary1</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<Icon>__TemplateIcon.ico</Icon>
</TemplateData>
<TemplateContent>
<Project TargetFileName="ClassLibrary1.csproj" File="ClassLibrary1.csproj" ReplaceParameters="true">
<ProjectItem ReplaceParameters="true" TargetFileName="Class1.cs">Class1.cs</ProjectItem>
</Project>
</TemplateContent>
</VSTemplate>
我尝试了不同的“解决方案”,但它们对我不起作用。https://developercommunity.visualstudio.com/content/problem/37226/new-project-missing-files-from-exported-project-te.html
发布于 2018-04-24 12:05:02
创建新模板时,Visual Studio
将其保存在C:\Users\User\Documents\Visual Studio 2017\Templates\
和C:\Users\User\Documents\Visual Studio 2017\My Exported Templates\
中,但Visual Studio
仅从\Templates读取模板。
问题是,默认情况下,模板CreateInPlace的参数应该是true。但是对于.Net Standard
,您必须设置该值。要执行此操作,请转到文件夹\Templates\
,找到模板并解压缩,删除压缩文件。打开模板文件并添加值:
MyTemplate.vstemplate
....
<Icon>__TemplateIcon.ico</Icon>
<CreateInPlace>true</CreateInPlace>
</TemplateData>
....
它应该已经起作用了。不要试图再次压缩模板,将无法从压缩中正确读取。
如果有人有更好的答案,请分享。
https://stackoverflow.com/questions/49942653
复制相似问题