我可以在子目录中包含一个文件,但是将它放在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应该是?
答案 0 :(得分:1)
上述内容仍然无法完全适用于我,但我能够根据您设置项目组的方式找到解决方法:
将解决方案中的文件作为链接包含在根目录中。使用$(配置)提示,我能够做到这一点,并将其作为链接动态包含,而不是将其复制到根目录。
<Content Include="..\Robots_Source\$(Configuration)\robots.txt">
<Link>robots.txt</Link>
</Content>
答案 1 :(得分:0)
我不确定我的问题是否正确,请告诉我这项工作是否符合您的预期:
<ItemGroup>
<Content Include = "IncludeTest\$(Configuration)\robots.txt">
<SubType>Designer</SubType>
</Content>
</ItemGroup>
复制到root:
<Copy SourceFiles="@(Content)"
DestinationFiles="@(Content ->'..\%(RecursiveDir)%(Filename)%(Extension)')" />
编辑:当文件在嵌套目录中时可能会出现问题,请试试:
<Copy SourceFiles="@(Content)"
DestinationFiles="@(Content ->'$(MSBuildProjectDirectory)..\%(RecursiveDir)%(Filename)%(Extension)')" />