visual-studio-2010 - 输出路径和 MSBuild

标签 visual-studio-2010 msbuild msbuild-4.0

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

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

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

最佳答案

当您在未设置 OutDir 属性的情况下构建应用程序时,文件将复制到项目属性中指定的路径(Build\Output 路径)。在此之后,还有一个步骤将引用的项目输出(*.dll 文件)复制到您的应用程序 (*.exe) 的 OutDir。但是,如果您将 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

关于visual-studio-2010 - 输出路径和 MSBuild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12464350/

相关文章:

MSBUILD : error MSB1008: Only one project can be specified in teamcity

c# - CA2000 : Microsoft. 可靠性对象未沿所有异常路径处理

c# - 为什么会生成警告 CS1607 "The version specified for the ' product version' is not in the normal 'major.minor.build.revision' format?

visual-studio-2010 - 使用 MSBuild 和 TeamCity 部署 VS 2010 数据库项目

msbuild - 如何在执行 MSBuild 脚本的过程中暂停?

tfs - 从 MSBuild 检测 TFS 版本/安装文件夹

debugging - 如何在MSBuild 12.0/VS2013中调试项目文件?

visual-studio-2010 - 本地主机无法在 Chrome 和 Firefox 中运行

c# - 在 rdlc 报告中创建没有数据集的表。

c# - 使用 File::Exists 的条件不起作用