VS 模板不会复制解决方案资源管理器中未显示的文件



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中包含修订号)

相关内容

  • 没有找到相关文章

最新更新