这些Mono/xbuild警告意味着什么,我该如何修复它们?

Hen*_*ger 8 mono xbuild

我使用Mono的xbuild 2.10.5.0构建了VS2010项目.这些项目使用".NET Framework 3.5 Client Profile"作为目标框架(它们必须兼容3.5并且我不需要超过客户端配置文件部分).

我收到以下警告:

Build succeeded.

Warnings:

c:\Project\MyProject.csproj (default targets) -> C:\PROGRA~2\Mono\lib\mono\4.0\Microsoft.Common.targets (GetReferenceAssemblyPaths target) ->
    C:\PROGRA~2\Mono\lib\mono\4.0\Microsoft.Common.targets:  warning : Unable to find framework corresponding to the target framework moniker '.NETFramework,Version=v3.5,Profile=Client'. Framework assembly references will be resolved from the GAC, which might not be the intended behavior.

c:\Project\MyProject.csproj (default targets) -> C:\PROGRA~2\Mono\lib\mono\4.0\Microsoft.Common.targets (ResolveAssemblyReferences target) ->
    C:\PROGRA~2\Mono\lib\mono\4.0\Microsoft.Common.targets:  warning : Reference 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' not resolved
    C:\PROGRA~2\Mono\lib\mono\4.0\Microsoft.Common.targets:  warning : Found a conflict between : 'System' and 'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Using 'System' reference.
    C:\PROGRA~2\Mono\lib\mono\4.0\Microsoft.Common.targets:  warning : Found a conflict between : 'System.Core' and 'System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Using 'System.Core' reference.
Run Code Online (Sandbox Code Playgroud)

我担心我不理解这些,并且唯一一个针对"无法找到与目标框架名称对应的框架"的 Google命中是对该错误消息的提交.

这些警告意味着什么,我该如何解决?Mono根本不支持"客户端配置文件"吗?如果是这样,我在Mono文档中找不到任何相关内容.是什么导致未解决的mscorlib引用,这两个System引用在哪里报告它们之间的冲突?

sko*_*ima 7

您猜对了--Mono不支持'Client'配置文件(例如,对于任何提及'Client'的搜索Mono版本的3.5 Microsoft.Common.targets),只有完整的3.5和4.0配置文件.要修复它们,您需要在项目文件中指定一个受支持的配置文件.配置文件选择仅限制构建期间可用的引用集,使用"客户端"配置文件编译的程序集将在"完整"配置文件上正常工作.

mscorlib, Version=2.0.0.0未解决的参考发生,因为你是一个4.0配置文件(这是默认的备用)编制.将配置文件设置为支持的值后,它将消失.如果您不想更改项目文件,可以使用xbuild /p:TargetFrameworkProfile="",正确选择3.5组程序集进行构建.