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-build1_debug-build-all-versions.bat" />
<None Include="batch-build4_release-build-all-versions.bat" />
</ItemGroup>
<Choose>
<When Condition="'$(Build_With_Tests_Of)' == 'NUnit'">
<ItemGroup>
<None Include="batch-build3_debug-build-all-versions-with-NUnit-tests.bat" />
</ItemGroup>
</When>
<When Condition="'$(Build_With_Tests_Of)' == 'Gallio'">
<ItemGroup>
<None Include="batch-build2_debug-build-all-versions-with-Gallio-tests.bat" />
</ItemGroup>
</When>
</Choose>
创建新项目时,默认情况下,Build_With_Tests_Of
属性的值为Gallio
。因此,在解决方案资源管理器中显示batch-build2_debug-build-all-versions-with-Gallio-tests.bat
文件。这就是我需要的。但如果我打开我的新项目的目录,我会发现batch-build3_debug-build-all-versions-with-NUnit-tests.bat
文件没有被复制。因此,模板不会复制文件,这不会显示在解决方案资源管理器中。但我完全需要他们的复印件。
如何强制模板复制所有文件?
我遇到了同样的问题。以下是我的解决方案:
将所需的文件添加到解决方案中。在其属性选项卡上,将其标记为资源。现在,创建您的模板
将文件更改为资源会使模板复制该文件(假设您最初没有将其包含在解决方案中,因为不应该遵守它)
希望这能有所帮助,这是我用来在模板项目中包含AssemblyInfo_Template.cs文件的解决方案。(SubWCRev.exe使用AssemblyInfo_Template.cs来覆盖AssemblyInfo.cs,以便在AssemblyInfo.cs中包含修订号)