在不添加引用的情况下,通过预生成事件构建另一个项目

14

我正在将一个 .exe 文件从另一个文件夹复制到我的主项目文件夹中,这是在预编译事件中完成的。但在构建我的主项目之前,我需要先构建该项目,因此我希望在主项目的预编译事件中构建该项目。


3
更好的解决方案(如果是在2018年阅读)是设置项目依赖项,请参照以下说明:https://dev59.com/q3E85IYBdhLWcg3wPBF8#2868986。 - Bonghi
4个回答

13

这是对我有效的方法:

"$(DevEnvDir)devenv" "$(SolutionDir)MySolution.sln" /Build $(configuration) /project "$(SolutionDir)MyProjectFolder\MyProject.csproj"

这里的$(DevEnvDir)$(SolutionDir)$(configuration)Visual Studio宏,因此该命令将被翻译为:

"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv" "D:\Learning\MySolutionFolder\MySolutionName.sln" /Build Debug /project "D:\Learning\MySolutionFolder\MyProjectFolder\MyProject.csproj"

4
$(DevEnvDir) 和 $(SolutionDir) 不应该在结尾添加 \,因为这些变量本身已经以 \ 结尾。 - Bojidar Stanchev

12

虽然这不是最好的解决方案,但它肯定可以满足你想要做的事情:把下面的内容放到你的预构建事件中

"$(VS100COMNTOOLS)..\IDE\devenv" "csproj位置或sln位置" /Rebuild "如果您有多个配置,例如Debug|x64,则需要指定所需配置"


6
谢谢!我使用的是Visual Studio 2015,现在看起来应该是这样的: "$(DevEnvDir)\devenv" "csproj位置或sln位置" /Rebuild "如果你有多个配置(例如:Debug|x64),需要指定所需的配置" - Sousuke

0
在 Visual Studio 2019 中使用以下命令,使用 msbuild 构建速度比 "$(DevEnvDir)devenv" 更快。 msbuild "$(SolutionDir)Sample.sln" /p:configuration=$(configuration)

0
"$(DevEnvDir)devenv" "$(SolutionPath)" /Rebuild $(configuration) /project "$(SolutionDir)MyProjectFolder\MyProject.csproj"

现在已在Visual Studio Community 16.11.1上进行了测试


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接