3

我可以包含来自子目录的文件,但是否将它放在 bulid 的根目录而不是其原始子目录中?

示例:我们有多个 robots.txt 文件用于不同的发布配置。这些文件在解决方案中为 \IncludeTest\Development\robots.txt 和 \IncludeTest\Production\robots.txt

我可以使用以下方法适当地动态抓取它们:

  <ItemGroup Condition=" '$(Configuration)' == 'Development' ">
    <Content Include="IncludeTest\Development\robots.txt">
      <SubType>Designer</SubType>
    </Content>
  </ItemGroup>

但是当我这样做时,我会维护 \IncludeTest\Development\(或 \IncludeTest\Production)目录。有什么方法可以将它包含在根目录中,robots.txt 应该在哪里?

4

2 回答 2

1

以上仍然对我完全不起作用,但我能够根据您设置项目组的方式找到解决方法:

将解决方案中的文件作为链接包含在根目录中。通过您的 $(Configuration) 提示,我能够做到这一点,并且只需将其作为链接动态包含,而不是将其复制到根目录。

<Content Include="..\Robots_Source\$(Configuration)\robots.txt">
  <Link>robots.txt</Link>
</Content>
于 2011-08-17T15:20:46.397 回答
0

不确定我的问题是否正确,请告诉我这是否按您的预期工作:

 <ItemGroup>
    <Content Include = "IncludeTest\$(Configuration)\robots.txt">
      <SubType>Designer</SubType>
    </Content>
  </ItemGroup>

复制到根目录:

<Copy SourceFiles="@(Content)" 
   DestinationFiles="@(Content ->'..\%(RecursiveDir)%(Filename)%(Extension)')" />

编辑:文件位于嵌套目录中时可能会出现问题,因此请尝试:

 <Copy SourceFiles="@(Content)" 
   DestinationFiles="@(Content ->'$(MSBuildProjectDirectory)..\%(RecursiveDir)%(Filename)%(Extension)')" />
于 2011-08-16T20:21:53.757 回答