无法使用 xbuild 构建解决方案(单声道)
Unable to use xbuild to build solution (Mono)
当尝试使用 xbuild
通过 Mono 在 Mac 和 Linux 上构建我的解决方案时(尚未在 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,而且我还没有找到解决办法。
.csproj
文件只为 Platform
条件定义了一个非 Unix CscToolPath
(应该使用 OS
...),不确定是什么Windows(?) 的要求是 v14,所以作为测试:
vi DiscordSharp/DiscordSharp.csproj
删除:
<PropertyGroup Condition="'$(Platform)' != 'Unix'">
<CscToolPath>$(MSBuildProgramFiles32)\MSBuild.0\Bin</CscToolPath>
</PropertyGroup>
重建项目,它应该可以正常工作:
nuget restore
xbuild DiscordSharp.sln
如果 Windows 需要 v14 MSbuild,您可以使用以下内容:
<PropertyGroup Condition="'$(OS)' != 'Unix'">
<CscToolPath>$(MSBuildProgramFiles32)\MSBuild.0\Bin</CscToolPath>
</PropertyGroup>
http://www.mono-project.com/archived/porting_msbuild_projects_to_xbuild/
那么下面应该 运行 没有错误:
xbuild /target:clean
xbuild /target:build
当尝试使用 xbuild
通过 Mono 在 Mac 和 Linux 上构建我的解决方案时(尚未在 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,而且我还没有找到解决办法。
.csproj
文件只为 Platform
条件定义了一个非 Unix CscToolPath
(应该使用 OS
...),不确定是什么Windows(?) 的要求是 v14,所以作为测试:
vi DiscordSharp/DiscordSharp.csproj
删除:
<PropertyGroup Condition="'$(Platform)' != 'Unix'">
<CscToolPath>$(MSBuildProgramFiles32)\MSBuild.0\Bin</CscToolPath>
</PropertyGroup>
重建项目,它应该可以正常工作:
nuget restore
xbuild DiscordSharp.sln
如果 Windows 需要 v14 MSbuild,您可以使用以下内容:
<PropertyGroup Condition="'$(OS)' != 'Unix'">
<CscToolPath>$(MSBuildProgramFiles32)\MSBuild.0\Bin</CscToolPath>
</PropertyGroup>
http://www.mono-project.com/archived/porting_msbuild_projects_to_xbuild/
那么下面应该 运行 没有错误:
xbuild /target:clean
xbuild /target:build