当前位置: 首页 > 知识库问答 >
问题:

如何从命令行使用msBuild编译我的c#解决方案

胡野
2023-03-14

我有一个c#解决方案(开源,可从这里获得:https://github.com/tzachshabtay/MonoAGS),我可以从Visual Studio 2017(点net框架)和VS for Mac (Mono)编译好它。我也可以在linux和mac上用Travis CI上的msbuild成功编译(https://github . com/tzachshabtay/MonoAGS/blob/master/. Travis . yml)。

我不能做的是在本地机器上从Windows 10在命令行上编译它。我希望能够为DotNet Framework和Mono编译它。所以我尝试从单声道安装和Build Tools for Visual Studio 2017中使用MSBuild(注意:即使没有安装vs2017,我也希望能够在Windows上安装,尽管在本地机器上安装了vs2017,不知道这是否重要)。这两个安装都是针对今天的最新版本。

这是我从mono上的msbuild得到的错误(PATH设置为%programfiles(x86)%\mono\bin):

项目“C:\Github\MonoAGS/MonoAGS.sln”(1)正在节点1(默认目标)上构建“C:\Github\MonoAGS\Source\Tests\Tests.csproj”(2)。项目“C:\Github\MonoAGS\Source\Tests\Tests.csproj”(2)正在节点1(GetTargetFrameworks目标)上构建“C:\Github\MonoAGS\ Source\AGS.API\AGS.API.csproj”(3)。C: \Program Files\dotnet\sdk\2.1.4\Sdks\Microsoft.NET.sdk\sdk\sdk。props(29,11):错误MSB4226:未找到导入的项目“C:\Program Files(x86)\MSBuild\15.0\Microsoft.Common.props”。此外,尝试在$(MSBuildExtensionsPath)-“C:\Program Files(x86)\MSBuild”的回退搜索路径中查找“15.0\Microsoft.Common.props”。这些搜索路径在“C:\程序文件\Mono\lib\Mono\MSBuild\15.0\bin\MSBuild.dll.config”中定义。确认html" target="_blank">声明中的路径正确,并且文件存在于磁盘上的某个搜索路径中。[C:\Github\MonoAGS\Source\AGS.API\AGS.API.csproj]

下面是我从生成工具中的msbuild得到的错误(PATH设置为%programfiles(x86)%\Microsoft Visual Studio\2017\BuildTools\msbuild\15.0\Bin):

项目“C:\GitHub\MonoAGS\Source\测试\Tests.csproj”(2)正在节点1(GetTargetFra的目标)上构建“C:\GitHub\MonoAGS\Source\AGS.API\AGS.API.csproj”(3)。C:\GitHub\MonoAGS\Source\AGS.API\AGS.API.csproj:错误MSB4247:无法加载SDK Resolver。存在清单文件,但找不到SDK Resolver DLL文件的路径。清单文件路径“C:\Program Files(x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\bin\SdkResolver\Microsoft. Build. NuGetSdkResolver\Microsoft.Build.NuGetSdkResolver.xml”。SDK解析器路径:C:\节目文件(x86)\Microsoft Visual Studio\2017\BuildTools\公共7\IDE\公共扩展离子\Microsoft\NuGet\Microsoft.Build.NuGetSdkResolver.dll

至于单声道错误,<code>MSBuild\15.0</code>文件夹存在,但<code>Microsoft.Common。props</code>不在那里(我在那台机器的其他地方都找不到它)。

至于构建工具错误,CommonExtensions文件夹存在,但其中没有Microsoft文件夹。

我正在尝试的命令是:msbuild /p:Configuration=DEBUG /p:Platform=“Any CPU” MonoAGS.sln

为什么不起作用?我错过了什么?谢谢

共有1个答案

古彦
2023-03-14

如何从命令行使用msBuild编译我的c#解决方案

对于生成工具错误,您应该通过Visual Studio Installer安装组件NuGet包管理器:

当我们使用 Visual Studio 构建工具构建项目时,我们还需要为项目安装一些必要的组件。

对于单声道错误,由于我没有单声道 ENV,因此我无法指定该错误的直接原因,如果可能,您可以尝试安装 Mono 框架。如果它没有帮助,您可以使用单声道和 msbuild 标签打开一个新线程。

更新:

如何使用命令行btw(用于设置脚本)安装它?

是的,您可以使用vs_buildtools.exe来安装该组件 ID Microsoft.VisualStudio.Component.NuGet:

vs_buildtools.exe --add Microsoft.VisualStudio.Component.NuGet --quiet

注意:您应该将vs_buildtools__2048890300.15156xxxx.exe重命名为vs_buildtools.exe,然后使用vs_buildtools.exe进行安装。

检查Visual Studio Build Tools 2017组件目录并使用命令行参数安装Visual Studio 2017以获取更多详细信息。

希望这有所帮助。

 类似资料:
  • 主要内容:SDKMAN!,创建和运行第一个程序,hello.kt,运行 REPL(交互式解释器),使用命令行执行脚本Kotlin 命令行编译工具下载地址:https://github.com/JetBrains/kotlin/releases/tag/v1.1.2-2,目前最新为 1.1.2-2。 你可以选择一个最新的稳定版下载。 下载完成后,解压到指定目录,然后将 bin 目录添加到系统环境变量。bin 目录包含编译和运行 Kotlin 所需的脚本。 SDKMAN! 在 OS X、Linux、

  • Kotlin 命令行编译工具下载地址:https://github.com/JetBrains/kotlin/releases/tag/v1.1.2-2,目前最新为 1.1.2-2。 你可以选择一个最新的稳定版下载。 下载完成后,解压到指定目录,然后将 bin 目录添加到系统环境变量。bin 目录包含编译和运行 Kotlin 所需的脚本。 SDKMAN! 在 OS X、Linux、Cygwin、F

  • 我正在尝试对protobuf二进制文件进行原始解码。我从源代码中安装了google protobuf库https://github.com/google/protobuf我可以使用命令行来解码原始的protobuf二进制文件,使用命令

  • 当我尝试使用Microsoft的Visual C#编译器(v4.8.4084.0)从命令行编译源代码时,我得到以下错误和/或警告:

  • 本文向大家介绍使用devenv在命令行中编译项目的方法,包括了使用devenv在命令行中编译项目的方法的使用技巧和注意事项,需要的朋友参考一下 本文介绍如何使用命令行运行Visual Studio编译项目。 一、devenv介绍 devenv是VisualStudio的可执行程序,一般在“..\Microsoft Visual Studio 12.0\Common7\IDE”下,用于运行Visua

  • 我在MacOS Sierra 10.12.4上,试图让CUDA 8.0在我的MacBook Pro(2013年末)上运行,并使用与CUDA兼容的NVIDIA GeForce GT750M。 我按照NVIDIA安装指南安装了Xcode 8.2和相应的命令行工具,但是当我尝试编译示例时,我得到了以下错误: $ make -C 1_Utilities/deviceQuery /Developer/NVI