2016-10-24 7 views
2

Я играю с .NET Standard и считаю странным, что если у меня есть следующий project.json, указанный для библиотеки классов .NET Core (xproj) и портативной библиотеки классов (CSharp), только последний может быть надлежащим образом ссылаться из проекта Xamarin.Android:Библиотека классов (.NET Core) и PCL в Xamarin

{ 
    "supports": {}, 
    "dependencies": { 
    "NETStandard.Library": "1.6.0", 
    "Microsoft.NETCore.Portable.Compatibility": "1.0.1" 
    }, 
    "frameworks": { 
    "netstandard1.4": {} 
    } 
} 

Я могу добавить, как в качестве ссылки, dotnet update работы, как ожидалось (или не показано, по крайней мере, никаких сообщений об ошибках), но. NET core library не реализована:

не найдено ни одного места в тексте или простое название

Я нахожу это странным, так как я ожидаю, что любая стандартная библиотека таргетинга .NET будет работать правильно. Я что-то делаю неправильно или намеренно поддерживаю только PCL от Xamarin?

ответ

3

Я предполагаю, что у вас есть проект .csproj для проекта Xamarin.Android и .xproj для вашей библиотеки классов .NET Core, ориентированной на .NET Standard.

Обходной путь заключается в том, чтобы вручную отредактировать .csproj, чтобы включить ссылку с правильной подсказкой. Например:

<Reference Include="SomeOtherClassLibrary"> 
    <HintPath>..\SomeOtherClassLibrary\bin\$(Configuration)\netstandard1.6\SomeOtherClassLibrary.dll</HintPath> 
</Reference> 

Вам также может понадобиться вручную добавить зависимость сборки от Xamarin.Android в проект библиотеки классов для обеспечения проектов построены в правильном порядке (щелкните правой кнопкой мыши проект Xamarin.Android в решении Explorer Build Dependencies > Project Dependencies...).

Таким образом, это не значит, что стандартные целевые библиотеки .NET Standard не работают с Xamarin, или что Xamarin поддерживает только PCL. Это причуда с рекомендациями проекта и текущим состоянием инструментария, который, я уверен, со временем улучшится.

+0

Большое спасибо, что работает, хотя я думаю, что буду придерживаться PCL до тех пор, пока не придет улучшение. – kataik