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

问题描述 投票:0回答:4

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

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

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

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

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

c# mono xbuild
4个回答
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路径选择,用一个反斜杠替换它们,它应该编译好。


0
投票

我UnChecked use MSBuild并修复它。


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


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

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

© www.soinside.com 2019 - 2024. All rights reserved.