Как разделить классы между проектом .Net Core и проектом .Net Framework 4.5?

Я работаю над проектом, для которого требуется использование Navisworks .Net API (4.5) и ASP.NET Core. Я хотел бы поделиться некоторыми из своих типов между этими двумя, но моя попытка создать переносимую библиотеку, предназначенную для .Net Core 1.0 и .Net Framework 4.5, и ссылка на нее из обоих других проектов не удалась. Navisworks API это не понравилось, и он выдает исключение, подробности которого я не могу получить.

Есть ли решение для того, чего я пытаюсь достичь?


person Hasan    schedule 26.11.2016    source источник


Ответы (1)


.Net Framework 4.5 поддерживает .Net Standard 1.1 (и более новые версии .Net Framework поддерживают более новые версии .Net Standard), поэтому создание библиотеки .Net Standard 1.1 должно работать на вас.

Хотя я считаю, что есть проблемы со ссылками на проекты project.json из проектов csproj, поэтому вам, возможно, придется использовать библиотеку как пакет NuGet.

Другие варианты:

  • Если вы хотите использовать ASP.NET Core, но вам не нужен .Net Core (т. е. вы согласны работать только с Windows), вы можете сделать свою библиотеку только .Net Framework и создать приложение ASP.NET Core поверх него. .Net Framework.
  • Если вы согласны с использованием довольно нестабильного программного обеспечения, вы можете использовать Visual Studio 2017 RC, который использует .Net Core SDK Preview3 для создания библиотеки .Net Standard на основе csproj. Это должно упростить взаимодействие с вашим проектом .Net Framework.
person svick    schedule 26.11.2016
comment
Спасибо за ответ. Как мне создать проект .Net Standard 1.1? Visual Studio, кажется, создает проект Net Standard 1.6, и я не мог это изменить. - person Hasan; 26.11.2016
comment
Создайте проект .Net Standard 1.6 и отредактируйте файл project.json, чтобы он использовал структуру netstandard1.1 (но оставьте ссылку на NETStandard.Library как 1.6). Затем восстановите пакеты, и это должно сработать. - person svick; 26.11.2016
comment
Спасибо, свик. Должен ли я сохранить импорт: часть dnxcore50? - person Hasan; 26.11.2016
comment
Я думаю, это не должно иметь значения. Хранить его, вероятно, немного безопаснее. - person svick; 26.11.2016
comment
Большое спасибо svic. Я удалил его, и он сработал, и для проблемы ссылок между проектами project.json и csproj я сослался на встроенную dll в csproject и на сам проект в проекте dotnetcore. Это сработало! - person Hasan; 26.11.2016