输出路径和的MSBuild(Output Path and MSBuild)

2019-09-22 13:25发布

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

当我从VS构建它,没有这些引用的二进制文件都拷入到输出build目录。 同样,当我建立使用MSBuild的,我只看到了项目的二进制文件,并没有提及。

然而,当我指定的MSBuild的命令的输出路径,一些参考被复制,我不知道为什么? 有一些设置,我忘了设置? 谁看过这个吗?

Answer 1:

当你没有设定构建应用程序OutDir财产,将文件复制到项目属性(编译\输出路径)指定的路径。 在此之后,还有另外一个步骤是复制引用的项目输出(* .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


文章来源: Output Path and MSBuild