Проблема с многоцелевыми фреймворками в проекте сайта asp - PullRequest
0 голосов
/ 27 марта 2019

Я разработал библиотеку C # Framework, которая предназначена как для .NetStandard, так и .NetFramework. Это было сделано путем редактирования файла .csproj, изменения TargetFramework на TargetFramework s и добавления их обоих в тег:

<TargetFrameworks>netstandard2.0;net471</TargetFrameworks>

Теперь я могу добавить этот фреймворк как ProjectReference в другие мои проекты.

Это прекрасно работает для всех проектов, имеющих файл .csproj.

Однако при добавлении фреймворка в проект веб-сайта asp (у которого нет файла .csproj) я получаю очень странные ошибки сборки.

Could not get dependencies for project reference 'XX.Framework' wwwroot    

The type 'System.Enum' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'.

Моя TargetFramework для веб-сайта - 4.7.1, как видно из моего web.config:

<compilation debug="true" targetFramework="4.7.1">

Я вижу из размера файла импортируемого .dll, что он получает dll для .NetStandard, а не .NetFramework. Правильно, почему я получаю ошибки сборки.

Обратите внимание, что при добавлении фреймворка через nuget вместо ссылки на проект он получает правильную dll, то есть dll .NetFramework. И поэтому нет ошибок сборки.

У меня такой вопрос: Почему веб-сайты asp.net игнорируют мою targetFramework в web.config при добавлении многоцелевых фреймворков по ссылке на проект?

Редактировать 1 : Структура моего сайта:

enter image description here

Редактировать 2 : Решение VS с примером проблемы. https://github.com/srenrd/MultiFrameworkExample

1 Ответ

0 голосов
/ 29 марта 2019

Для примера кода добавьте следующий код в файл Web.config:

<assemblies>
    <add assembly="netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"/>
  </assemblies>

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...