Visual Studio 2013.我创建了自己的模板。
其vstemplate
- 文件包含以下记录:
<Folder Name="batch-build" TargetFolderName="batch-build">
<ProjectItem ReplaceParameters="true" TargetFileName="1_debug-build-all-versions.bat">
<ProjectItem ReplaceParameters="true" TargetFileName="2_debug-build-all-versions-with-Gallio-tests.bat">
<ProjectItem ReplaceParameters="true" TargetFileName="3_debug-build-all-versions-with-NUnit-tests.bat">
<ProjectItem ReplaceParameters="true" TargetFileName="4_release-build-all-versions.bat">
</Folder>
我需要根据此模板将所有这些文件复制到我的新项目中。
但此模板的csproj
- 文件包含一些条件:
<ItemGroup>
<None Include="batch-build\1_debug-build-all-versions.bat" />
<None Include="batch-build\4_release-build-all-versions.bat" />
</ItemGroup>
<Choose>
<When Condition="'$(Build_With_Tests_Of)' == 'NUnit'">
<ItemGroup>
<None Include="batch-build\3_debug-build-all-versions-with-NUnit-tests.bat" />
</ItemGroup>
</When>
<When Condition="'$(Build_With_Tests_Of)' == 'Gallio'">
<ItemGroup>
<None Include="batch-build\2_debug-build-all-versions-with-Gallio-tests.bat" />
</ItemGroup>
</When>
</Choose>
创建新项目时,默认情况下Build_With_Tests_Of
属性的值为Gallio
。因此,在Solution Explorer中显示batch-build\2_debug-build-all-versions-with-Gallio-tests.bat
文件。这就是我需要的。但是,如果我打开我的新项目的目录,比我看到的那样 - batch-build\3_debug-build-all-versions-with-NUnit-tests.bat
文件没有被复制。因此,模板不会复制文件,这些文件不会显示在解决方案资源管理器中。但我需要他们的副本。
如何强制模板复制所有文件?
答案 0 :(得分:3)
我有同样的问题。这是我的解决方案:
将所需文件添加到解决方案中。在它的属性选项卡中,将其标记为资源。现在,创建模板。
将文件更改为资源将使模板复制该文件(假设您之前没有将其包含在解决方案中,因为它不应该被编译)
希望这会有所帮助,这是我过去在模板项目中包含AssemblyInfo_Template.cs文件的解决方案。 (SubWCRev.exe使用AssemblyInfo_Template.cs来覆盖AssemblyInfo.cs,以便在AssemblyInfo.cs中包含修订号)