无法使用 xbuild 构建解决方案(单声道)

本文关键字:单声道 声道 解决方案 构建 xbuild | 更新日期: 2023-09-27 18:34:31

当尝试使用xbuild在Mac和Linux上通过Mono构建我的解决方案时(尚未在Windows下测试(,我得到了这个奇怪的错误,我无法在其他任何地方找到。

Errors:
/Users/macbook/git/DiscordSharp/DiscordSharp.sln (default targets) ->
(Build target) ->
/Users/macbook/git/DiscordSharp/DiscordSharp/DiscordSharp.csproj (default targets) ->
/Library/Frameworks/Mono.framework/Versions/4.2.2/lib/mono/4.5/Microsoft.CSharp.targets (CoreCompile target) ->
    /Library/Frameworks/Mono.framework/Versions/4.2.2/lib/mono/4.5/Microsoft.CSharp.targets: error : Tool executable '/MSBuild/14.0/Bin/mcs.exe' could not be found
     1 Warning(s)
     1 Error(s)
Time Elapsed 00:00:02.0472770
MacBooks-MacBook:DiscordSharp macbook$ 

有趣的是,我能够在MonoDevelop中打开解决方案并以这种方式构建它。解决方案中的项目目标Mono / .NET Framework 4.5 。我正在运行单声道4.2 SR1 (4.2.2.30)

可能导致此问题的原因是什么,我可以通过什么方式解决它?这个问题阻止了我在这个项目中使用 TravisCI,我还没有找到修复的方法。

无法使用 xbuild 构建解决方案(单声道)

.csproj文件只是为Platform条件(应该使用OS...(定义一个非Unix CscToolPath,不确定Windows(?(的v14的要求是什么,所以作为一个测试:

vi DiscordSharp/DiscordSharp.csproj

删除:

<PropertyGroup Condition="'$(Platform)' != 'Unix'">
    <CscToolPath>$(MSBuildProgramFiles32)'MSBuild'14.0'Bin</CscToolPath>
</PropertyGroup>

重建项目,它应该可以正常工作:

nuget restore
xbuild DiscordSharp.sln

如果 Windows 需要 v14 MSbuild,则可以使用以下命令:

<PropertyGroup Condition="'$(OS)' != 'Unix'">
    <CscToolPath>$(MSBuildProgramFiles32)'MSBuild'14.0'Bin</CscToolPath>
</PropertyGroup>

http://www.mono-project.com/archived/porting_msbuild_projects_to_xbuild/

然后,以下内容应该运行良好,没有错误:

xbuild /target:clean
xbuild /target:build