0

私のc#VS2012ソリューションには、A、B、Cの3つのプロジェクトがあります。プロジェクトBとCには、次のインクルードを使用したAのファイル(* .jsなど)が含まれます。

<Content Include="..\A\**\*.js">
  <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
</Content>

ソリューションエクスプローラーのBプロジェクトとCプロジェクトの両方で、Aから参照されているすべてのファイルをリンクとして表示できます。

ビルド後、A、B、およびCIは、プロジェクトBのファイルシステムでファイルを物理的に表示できますが、プロジェクトCでは表示できません。BとCのプロジェクトファイルを比較しましたが、この動作を制御できるものは何も表示されません。一般に、csprojファイルにリンクとして含まれているファイルの動作を支配するものについての多くの情報を見つけることができません。

下の質問:

ビルドにリンクとして含まれているファイルの物理コピーをmsbuild/VSで作成するにはどうすればよいですか?

4

1 に答える 1

0

私自身の質問に答えます。

私は@Ranが提案したことを行いました(そして、最初に行うべきでした)。違いを見つけるために、両方のプロジェクトから少しずつ削除しました。次の行により、2番目のプロジェクトがビルド時にリンクとして含まれるファイルを具体化したことがわかりました。

<PropertyGroup>
 <OutputPath Condition="'$(TeamBuildOutDir)'=='' ">
   bin\$(Platform)\$(Configuration)
 </OutputPath>
 <OutputPath Condition="'$(TeamBuildOutDir)'!='' ">
   bin\$(Platform)\$(Configuration)
 </OutputPath>
</PropertyGroup>
于 2013-01-24T01:04:23.513 に答える