使用xbuild(mono)构建C#解决方案时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用xbuild(mono)构建C#解决方案时出错相关的知识,希望对你有一定的参考价值。

我搜索了互联网的深度,我找不到这个问题的答案或解决方法。我不知道是什么导致它。

我一直在Xamarin Studio中收到错误:

Error: Error building target GetReferenceAssemblyPaths: UNC paths should be of the form     \servershare.

谁可以给我解释一下这个?

这是一个项目文件的链接:http://pastebin.com/qZ5uGL9S

答案

如果检查项目文件,则在某些FXCopy规则路径中有一些额外的反斜杠,即

<CodeAnalysisRuleSetDirectories>;C:Program Files (x86)Microsoft Visual Studio 10.0Team ToolsStatic Analysis Tools**\**Rule Sets</CodeAnalysisRuleSetDirectories>
<CodeAnalysisRuleDirectories>;C:Program Files (x86)Microsoft Visual Studio 10.0Team ToolsStatic Analysis ToolsFxCop**\**Rules</CodeAnalysisRuleDirectories>
<CodeAnalysisRuleSetDirectories>;C:Program Files (x86)Microsoft Visual Studio 10.0Team ToolsStatic Analysis Tools**\**Rule Sets</CodeAnalysisRuleSetDirectories>
<CodeAnalysisRuleDirectories>;C:Program Files (x86)Microsoft Visual Studio 10.0Team ToolsStatic Analysis ToolsFxCop**\**Rules</CodeAnalysisRuleDirectories>

编译器可能会将它们作为UNC路径选择,用一个反斜杠替换它们,它应该编译好。

另一答案

我UnChecked use MSBuild并修复它。

另一答案

当我在Microsoft Visual Studio 2012中创建项目时,我选择了TargetFrameworkVersion 3.5。 Visual Studio 2012使用ToolsVersion =“4.0”创建项目文件。显然Mono安装(我的3.2.3)并没有很好地消化4.0工具集。所以我在记事本中打开了我的csproj文件,并将其更改为ToolsVersion =“3.5”。它解决了这个问题。

注意:TargetFrameworkVersion和ToolsVersion是两回事。 ToolsVersion指定在构建项目时使用的MSBuild工具的版本,而TargetFrameworkVersion是要定位的.NET Framework的版本。

另一答案

略有不相关,但在构建同事的旧Visual Studio项目时,我立即收到了类似的错误:

Error: Failed to write to log file "\projName.log". The UNC path should be of the form \servershare.

我通过更改项目配置属性构建日志文件字段来修复它。它有不正确的变量评估为空白:

$(IntDir)$(MSBuildProjectName).log

修复此问题可使构建完美运行。也许这会帮助某人,或者我可以打开一个新问题并回答它。

以上是关于使用xbuild(mono)构建C#解决方案时出错的主要内容,如果未能解决你的问题,请参考以下文章

Mono / XBuild Invariant Language (Invariant Culture) vs. VS2015 MSBuild 的 Neutral Language

C#/ Mono - 从控制台应用程序读取输出

Linux Mono C#错误:无法打开程序集'Bovine.csproj':文件不包含有效的CIL图像

Xamarin Forms Ui 项目(多平台)

在Amazon Linux上安装mono时出错

Mono 3.0.1 --> 为 Ubuntu 14.04 LTS (AWS Linux AMI) 编译 xsp 时出错