我有9个项目的解决方案。 在每个项目的所有引用的CopyLocal属性设置为False。
当我从VS构建它,没有这些引用的二进制文件都拷入到输出build目录。 同样,当我建立使用MSBuild的,我只看到了项目的二进制文件,并没有提及。
然而,当我指定的MSBuild的命令的输出路径,一些参考被复制,我不知道为什么? 有一些设置,我忘了设置? 谁看过这个吗?
我有9个项目的解决方案。 在每个项目的所有引用的CopyLocal属性设置为False。
当我从VS构建它,没有这些引用的二进制文件都拷入到输出build目录。 同样,当我建立使用MSBuild的,我只看到了项目的二进制文件,并没有提及。
然而,当我指定的MSBuild的命令的输出路径,一些参考被复制,我不知道为什么? 有一些设置,我忘了设置? 谁看过这个吗?
当你没有设定构建应用程序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