首页 > 解决方案 > 无法为 MSBuild 指定解决方案项目

问题描述

我有以下解决方案:

MySolution\
   MySolution.sln
   MyCSProject\
      MyCSProject.csproj
   MyCPPProject\
      VC11\
         projfile.vcxproj
      VC8
         projfile.vcproj
   MyInstallationProject
      MyInstallationPackage.vdproj

在 Visual Studio 中,我已MyCSProject设置为主项目。但是对于自动构建,我需要构建MyInstallationProject依赖项。MyInstallationProject取决于MyCSProjectMyCSProject取决于MyCPPProject。如果我从 Visual Studio 构建,它可以工作。

但是对于 MSBuild,我无法编写正确的命令。以下都不起作用:

"...\MSBuild.exe" MySolution.sln /t:MySolution\MyInstallationProject /p:Configuration="Release" /p:Platform="x64"

"...\MSBuild.exe" MySolution.sln /t:MySolution\MyInstallationProject.vdproj /p:Configuration="Release" /p:Platform="x64"

"...\MSBuild.exe" MySolution.sln /t:MyInstallationProject /p:Configuration="Release" /p:Platform="x64"

"...\MSBuild.exe" MyInstallationProject\MyInstallationProject.vdproj /p:Configuration="Release" /p:Platform="x64"

等等,各种报错,主要是“项目中不存在目标***”

如何知道与项目相关的正确命令和/或目标名称?

标签: visual-studiocommand-linemsbuild

解决方案


事实上,第三个和第四个 msbuild 命令行之一应该在您身边工作。此外,还有一个关于它的文件

事实是 MSBuild 无法构建vdproj文件。它来自 VS 安装程序项目扩展,构建工具是独立于扩展而不是 MSBuild 的工具。您可以轻松打开该vdproj文件,并发现它不是 xml 样式。

MSBuild 只能构建 xml sytle proj 文件。

对其进行测试,您可以为MyCSProject项目尝试相同的 msbuild 命令行以获得差异。

所以正确的方法是使用 VS IDE 构建或使用devenv 构建命令行,这意味着你必须在本地拥有 VS IDE。

尝试以下命令行:

1)打开VS的开发人员命令提示符:

2)运行:

cd xxx\xxx\MySolution
devenv MyInstallationProject\MyInstallationProject.vdproj /build

推荐阅读