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

时间:2013-11-12 15:32:31

标签: c# mono xbuild

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

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

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

有人可以向我解释一下吗?

以下是其中一个项目文件的链接: http://pastebin.com/qZ5uGL9S

4 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

UnChecked use MSBuild并修复此问题。

答案 2 :(得分:0)

当我在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的版本。

答案 3 :(得分:0)

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

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

我通过更改“项目配置属性” “构建日志文件” 字段进行了修复。它的变量不正确,被评估为空白:

$(IntDir)\$(MSBuildProjectName).log

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