我使用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.
我担心我不理解这些,"Unable to find framework corresponding to the target framework moniker"唯一的Google匹配就是对该错误消息的提交。
这些警告意味着什么,我该如何解决? Mono根本不支持“客户端配置文件”吗?如果是这样,我在Mono文档中找不到任何相关内容。导致未解决的mscorlib
引用的原因是什么导致这两个System
引用报告之间存在冲突?
答案 0 :(得分:7)
您猜对了 - Mono不支持“客户”个人资料(例如,搜索Mono version of 3.5 Microsoft.Common.targets提及“客户”),只支持完整的3.5和4.0个人资料。要修复它们,您需要在项目文件中指定一个受支持的配置文件。配置文件选择仅限制构建期间可用的引用集,使用“客户端”配置文件编译的程序集将在“完整”配置文件上正常工作。
mscorlib, Version=2.0.0.0
未解析的引用正在发生,因为您正在使用4.0配置文件进行编译(这是默认的回退)。将配置文件设置为支持的值后,它将消失。如果您不想更改项目文件,可以使用xbuild /p:TargetFrameworkProfile=""
构建,正确选择3.5组合集。