我有一个包含 9 个项目的解决方案。每个项目中的所有引用都将其 CopyLocal 属性设置为 False。
当我从 VS 构建它时,这些引用的二进制文件都不会复制到输出构建目录。同样,当我使用 msbuild 进行构建时,我只看到项目二进制文件而没有引用。
但是,当我在 msbuild 命令中指定输出路径时,会复制一些引用,我不知道为什么?是否有一些我忘记设置的设置?有没有人见过这个?
当您构建应用程序而不设置OutDir
属性时,文件将复制到项目属性中指定的路径(Build\Output 路径)。之后,还有一个步骤,将引用的项目输出(*.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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)