首页 文章

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

提问于
浏览
0

我有一个c#解决方案(开源,可在此处获取:https://github.com/tzachshabtay/MonoAGS),我可以从Visual Studio 2017(Dot net框架)和VS for Mac(Mono)编译 . 我也可以在Linux和mac(https://github.com/tzachshabtay/MonoAGS/blob/master/.travis.yml)上成功地在Travis CI上使用msbuild编译它 .

我能够't do, is compile it on command-line from Windows 10 on my local machine. I'喜欢能够为DotNet Framework和Mono编译它 . 所以我尝试从单声道安装和 Build Tools for Visual Studio 2017 使用MSBuild(注意:我希望能够在Windows上安装,即使没有安装vs2017,虽然安装了本地机器vs2017,但不知道是否重要) . 这两个安装都是针对今天的最新版本 .

这是我在单声道上从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上构建“C:\ Github \ MonoAGS \ Source \ AGS.API \ AGS.API.csproj”(3)(GetTargetFrameworks目标(一个或多个)) . 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.prop s” . 这些搜索路径在“C:\ Program Files \ Mono \ lib \ mono \ msbuild \ 15.0 \ bin \ MSBuild.dll.config”中定义 . 确认声明中的路径是否正确,并且该文件存在于其中一个搜索路径的磁盘上 . [C:\ Github上\ MonoAGS \源\ AGS . API \ AGS.API.csproj]

这是我从构建工具从msbuild获得的错误( PATH 设置为 %programfiles(x86)%\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin ):

项目“C:\ Github \ MonoAGS \ Source \ Tests \ Tests.csproj”(2)在节点1上构建“C:\ Github \ MonoAGS \ Source \ AGS.API \ AGS.API.csproj”(3)( GetTargetFrameworks目标(s)) . C:\ Github \ MonoAGS \ Source \ AGS.API \ AGS.API.csproj:错误MSB4247:无法加载SDK解析程序 . 存在清单文件,但找不到SDK解析程序DLL文件的路径 . 清单文件路径'C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ 15.0 \ Bin \ SdkResolvers \ Microsoft.Build.NuGet SdkResolver \ Microsoft.Build.NuGetSdkResolver.xml' . SDK解析器路径:C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ Common7 \ IDE \ CommonExtens ions \ Microsoft \ NuGet \ Microsoft.Build.NuGetSdkResolver.dll

至于单声道错误, MSBuild\15.0 文件夹存在,但 Microsoft.Common.props 不存在(我无法在该机器上的任何其他位置找到它) .

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

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

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

1 回答

  • 2

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

    对于构建工具错误,您应该通过Visual Studio Installer安装组件 NuGet package manager

    enter image description here

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

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

    Update:

    如何使用命令行,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 component directoryUse command-line parameters to install Visual Studio 2017 .

    希望这可以帮助 .

相关问题