У меня есть веб-сайт .net 4.0 asp.net (старые, без .csproj).Это относится к библиотеке классов .net framework 4.0 (Shared Library A).
Я добавил новый проект API ядра .net в решение.Этот проект также должен поговорить с Shared Library A.
Решение (я думал) состояло в том, чтобы переместить библиотеку классов в .net стандарт 2.0, а затем переместить веб-сайт на 4.7.2, что позволило бы ему ссылаться наПроект стандарта .net 2.0.
Для этого я изменил веб-конфигурацию для веб-сайта таким образом:
<compilation debug="true" targetFramework="4.7.2">
<httpRuntime maxRequestLength="10000" executionTimeout="1000" requestValidationMode="2.0" targetFramework="4.7.2"/>
Это все работает в Visual Studio.Решение строится, веб-сайт запускается и код в библиотеках .netstandard2.0 функционирует должным образом и является отлаживаемым.Я знаю, что Visual Studio делает некоторые вещи по-другому с MSBuild.exe.
Проблема в том, что наш CI-сервер не может построить решение, а также не может «MSBuild.exe» локально.
Команда Iя работаю:
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe" "[Path to Solution]\AT3.sln"
Затем я получаю сообщение об ошибке:
warning MSB3268: The primary reference "C:\Work\AT3\at3\wrld\AT3.Common.Utilit ies\bin\Debug\netstandard2.0\AT3.Application.Utilities.dll" could not be resolved because it has an indirect depende ncy on the framework assembly "netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.7.2". To resolve this problem, either remove the reference "C:\Work\AT3\at3\wrld\AT3.Common.Utilities\bin\Debug\netstandard2.0\AT3.Application.Uti lities.dll" or retarget your application to a framework version which contains "netstandard, Version=2.0.0.0, Cultur e=neutral, PublicKeyToken=cc7b13ffcd2ddd51"
Чтобы попытаться решить эту проблему, я добавил следующую строку в раздел моего web.config:
<add assembly="netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"/>
Мой вопрос: как я могу получить этот проект .netstandard2.0 для разрешения с помощью MSBuild.exe?Может ли веб-сайт на самом деле быть "4.7.2" и успешно ссылаться на стандарт .net, или визуальная студия лжет мне, говоря, что может?
Примечания: я знаю, что нам нужно перенести веб-сайт в веб-проект.Я просто надеюсь, что это не единственное решение этой проблемы, так как это немного монолитный сайт.Наш план состоит в том, чтобы начать медленную миграцию кода из App_Code в библиотеки .netstandard2.0.
Спасибо заранее.