输出路径和MSBuild

时间:2012-09-17 17:31:06

标签: visual-studio-2010 msbuild msbuild-4.0

我有9个项目的解决方案。每个项目中的所有引用都将其CopyLocal属性设置为False。

当我从VS构建它时,这些引用的二进制文件都不会被复制到输出构建目录。类似地,当我使用msbuild构建时,我只看到项目二进制文件而没有引用。

但是,当我在msbuild命令中指定输出路径时,会复制一些引用并且我不知道为什么?我忘了设置一些设置吗?有没有人见过这个?

1 个答案:

答案 0 :(得分:2)

在不设置OutDir属性的情况下构建应用程序时,文件将复制到项目属性(Build \ Output path)中指定的路径。在此之后,还有另一个步骤将引用的项目输出(* .dll文件)复制到应用程序的OutDir(* .exe)。但是如果将CopyLocal设置为false,则不会发生最后一步。像这样:

ProjectEXE\OutDir = c:\a\bin
ProjectDLL\OutDir = c:\b\bin

请注意这两个OutDir不同(在项目属性中有不同的指定)。

但是当您使用命令提示符设置OutDir时,您将两个OutDir参数设置为相同的路径。仍然没有DLL的最终副本到应用程序的同一目录,除了它是你第一次构建DLL和EXE的位置相同的事实。像这样:

msbuild yourSolution.sln /p:OutDir="c:\a\bin\"

ProjectEXE\OutDir = c:\a\bin
ProjectDLL\OutDir = c:\a\bin