使用自动.Net Standard
工具在VS2017
2.0中为类库创建新模板时会出现此问题。从该模板创建新项目时,不会复制源文件(.cs)。
虽然我需要复杂的模板,但会使用最简单的情况来解释问题。
创建新模板: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
答案 0 :(得分:2)
当您创建新模板时,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\
,找到模板并解压缩,删除zip。打开模板文件并添加值:
MyTemplate.vstemplate
....
<Icon>__TemplateIcon.ico</Icon>
<CreateInPlace>true</CreateInPlace>
</TemplateData>
....
它应该已经有用了。不要再尝试压缩模板,也不能从zip中正确读取。
如果有人有更好的答案,请分享。