【发布时间】:2020-01-20 17:52:19
【问题描述】:
我有包含多个 .csproj 的 Visual Studio 项目解决方案。每个 .csproj 都有一些参考库。项目设置的方式是先构建参考库,然后构建 .csproj。当我在 Visual Studio IDE 中运行它时,它按预期工作。但是当我尝试使用 msbuild 执行时,我收到一条错误消息,指出目标不存在。浏览了许多与此问题相关的帖子,尝试了可能的事情。但没有建立。看起来我可能在做一些愚蠢的事情或在设置中遗漏了一些东西。
还尝试从命令行使用 devenv。使用此选项,我没有看到任何错误,但同时项目没有构建。执行命令后我没有看到任何消息。我正在使用 Visual Studio 2015
Here is my project structure
Poject.sln
ProjectA
porjectB
projectC
Libraries
libA
libB
msbuild "project.sln" target:"D:\Projects\Source\Demo\ProjectA\ProjectA.csproj" /t:build
"/p:Configuration=Debug" "/p:platform=x86"
I see the below error
"D:\project.sln" (D:\Projects\Source\Demo\ProjectA\;build target) (1) ->
D:\project.sln.metaproj : error MSB4057: The target "D:\Projects\Source\Demo\ProjectA" does not exist in the project. [D:\project.sln]
Here is the command used using devenv
devenv.exe "project.sln" /build Debug /project `"D:\Projects\source\Demo\Applications\ProjectA\ProjectA.csproj" /projectconfig Debug
After executing the above its doesnt build and i dont see any error too.
【问题讨论】:
-
我发现了 devenv 命令行构建的问题。实际上代码正在构建,但它不会显示控制台输出。由于没有控制台输出,我觉得代码没有构建。使用 devenv 有一个命令行选项 /out 。使用它可以将输出捕获到文件中。 C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe" "D:\Projects\project.sln" /Rebuild "Debug|AnyCPU" /project "D:\Projects\projectA\projectA .csproj" /projectconfig 调试 /out "D:\Projects\Error.txt"
-
在命令行中使用 devenv 会停止执行,这可能会导致混淆。实际上代码是在后台构建的。所以最好使用带有相同命令行选项的 devenv.com。我们可以看到光标在闪烁,让我们感觉构建正在进行中。谁能告诉我如何在控制台上打印日志。是否有任何命令。 MSbuild 对我来说仍然是一个谜。希望有人指出我在使用 MSbuild 时的错误
-
要使用 msbuild,您不需要使用那种格式。
cd到ProjectA.csproj所在的文件夹,然后msbuild ProjectA.csproj /t:build /p:Configuration=Debug /p:platform=x86就够了。
标签: visual-studio msbuild devenv