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 に答える