Visual studio VisualStudio项目模板替换了$(SolutionDir)“;生成时模板中的宏
我正在尝试制作一个项目模板供内部使用,其中包含我们的组装版本控制系统的所有自定义部分 默认项目模板与预构建和后构建事件完美配合,但当我尝试使用Visual studio VisualStudio项目模板替换了$(SolutionDir)“;生成时模板中的宏,visual-studio,templates,msbuild,csproj,visual-studio-templates,Visual Studio,Templates,Msbuild,Csproj,Visual Studio Templates,我正在尝试制作一个项目模板供内部使用,其中包含我们的组装版本控制系统的所有自定义部分 默认项目模板与预构建和后构建事件完美配合,但当我尝试使用$(SolutionDir)宏引用文件时,它会在构建模板和 <ItemGroup> <Compile Include="$(SolutionDir)\CommonAssemblyInfo.cs"> <Link>Properties\CommonAssemblyInfo.cs</Link>
$(SolutionDir)
宏引用文件时,它会在构建模板和
<ItemGroup>
<Compile Include="$(SolutionDir)\CommonAssemblyInfo.cs">
<Link>Properties\CommonAssemblyInfo.cs</Link>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
属性\CommonAssemblyInfo.cs
当项目模板用于在解决方案中生成项目时,将转换为以下内容:
<ItemGroup>
<Compile Include="..\..\..\..\..\Users\<username>\AppData\Local\Temp\n0u03z2x.gpe\CommonAssemblyInfo.cs">
<Link>Properties\CommonAssemblyInfo.cs</Link>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
属性\CommonAssemblyInfo.cs
模板build/package
过程可能正在取代此过程
我怎样才能逃脱呢
Visual studio项目模板在生成时替换模板中的“$(SolutionDir)”宏
您应该在导出的项目模板的.vstemplate
文件中将其设置为true,如true
以下是我的.vstemplate
文件:
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
<TemplateData>
<Name>TestDemo</Name>
<Description><No description available></Description>
<ProjectType>CSharp</ProjectType>
<ProjectSubType>
</ProjectSubType>
<SortOrder>1000</SortOrder>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>TestDemo</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<Icon>__TemplateIcon.ico</Icon>
<CreateInPlace>true</CreateInPlace>
</TemplateData>
<TemplateContent>
<Project TargetFileName="TestDemo.csproj" File="TestDemo.csproj" ReplaceParameters="true">
<ProjectItem ReplaceParameters="true" TargetFileName="Class1.cs">Class1.cs</ProjectItem>
<Folder Name="Properties" TargetFolderName="Properties">
<ProjectItem ReplaceParameters="true" TargetFileName="AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
</Folder>
</Project>
</TemplateContent>
</VSTemplate>
测试演示
没有可用的描述
CSharp
1000
真的
测试演示
真的
启用
真的
__TemplateIcon.ico
真的
类别1.cs
AssemblyInfo.cs
详细步骤:
true
添加到MyTemplate.vstemplate
文件中,然后压缩所有文件
C:\Users\\Documents\visualstudio 2017\Templates\ProjectTemplates
CreateInPlace
的默认值为true
希望这有帮助