Что означают эти предупреждения Mono/xbuild и как их исправить?

Я создаю проекты VS2010 с помощью Xbuild 2.10.5.0 от Mono. Проекты используют "профиль клиента .NET Framework 3.5" в качестве целевой платформы (они должны быть совместимы с 3.5, и мне не нужно больше, чем части профиля клиента).

Я получаю следующие предупреждения:

Build succeeded.

Warnings:

c:ProjectMyProject.csproj (default targets) -> C:PROGRA~2Monolibmono.0Microsoft.Common.targets (GetReferenceAssemblyPaths target) ->
    C:PROGRA~2Monolibmono.0Microsoft.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:ProjectMyProject.csproj (default targets) -> C:PROGRA~2Monolibmono.0Microsoft.Common.targets (ResolveAssemblyReferences target) ->
    C:PROGRA~2Monolibmono.0Microsoft.Common.targets:  warning : Reference 'mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' not resolved
    C:PROGRA~2Monolibmono.0Microsoft.Common.targets:  warning : Found a conflict between : 'System' and 'System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'. Using 'System' reference.
    C:PROGRA~2Monolibmono.0Microsoft.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.

Я боюсь, что я не понимаю этих и единственный хит Google для "не удалось найти фреймворк, соответствующий моникеру целевой фреймворка" является фиксацией для этой ошибки сообщение.

Что означают эти предупреждения и как их исправить? "Профиль клиента" вообще не поддерживается Mono? Если это так, я ничего не мог найти об этом в документации Mono. Что вызывает неразрешенное mscorlib справка и где эти два System ссылок он сообщает о конфликте между?

1 ответов


вы угадываете правильно-Mono не поддерживает профиль " клиента "(например, search моно версия 3.5 Microsoft.Общий.цели для любого упоминания "клиента"), только полные профили 3.5 и 4.0. Чтобы исправить их, необходимо указать один из поддерживаемых профилей в файле проекта. Выбор профиля ограничивает только набор ссылок, доступных во время сборки, Сборка, скомпилированная с профилем "клиент", будет работать на "полном" профиле просто отлично.

в mscorlib, Version=2.0.0.0 неразрешенная ссылка происходит, потому что вы компилируете профиль 4.0 (который является резервным вариантом по умолчанию). Он исчезнет, как только вы установите свой профиль на поддерживаемое значение. Если вы не хотите изменять файл проекта, вы можете построить его с помощью xbuild /p:TargetFrameworkProfile="", который правильно выбирает набор сборок 3.5.