如何让msbuild / VS创建包含在构建中的链接的文件的物理副本?

时间:2013-01-22 08:17:01

标签: c# visual-studio msbuild

在我的c#VS2012解决方案中,我有3个项目:A,B和C.项目B和C包含来自A的文件(* .js和其他),使用以下内容

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

我可以在解决方案资源管理器中看到A中所有引用的文件作为B和C项目中的链接。

在构建A,B和C之后,我可以在项目B的文件系统中看到文件,但在项目C中没有。我比较了B和C的项目文件,但我看不到任何可以控制此行为的内容。一般来说,我找不到很多关于什么管理csproj文件中包含的文件行为的信息。

底层问题:

如何让msbuild / VS创建包含在构建中的链接的文件的物理副本?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题。

我做了@Ran建议的(我本来应该做的)并且我从两个项目中一点一点地删除了一些东西以找到差异。事实证明,以下几行使第二个项目在构建时实现文件作为链接

<PropertyGroup>
 <OutputPath Condition="'$(TeamBuildOutDir)'=='' ">
   bin\$(Platform)\$(Configuration)
 </OutputPath>
 <OutputPath Condition="'$(TeamBuildOutDir)'!='' ">
   bin\$(Platform)\$(Configuration)
 </OutputPath>
</PropertyGroup>