Я работаю над приложением ASP, написанным на .Net Framework 4.8, работающим в IIS на Windows Server 2012 R2. Я создал пакет NuGet, который представляет собой библиотеку .Net Standard 2.0, и все это успешно работает на моем локальном компьютере с помощью отладки Visual Studio.
Развернув его на сервере (заменив существующую папку bin новой, включая все новые файлы), я теперь получаю эту ошибку.
Could not load file or assembly 'System.Security.Principal.Windows, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Я использую самую последнюю версию MS Build Tools, последние обновления Windows, доступные для сервера, и приложение .Net Framework, и стандартная библиотека .Net используют версию 5 System.Security.Principal.Windows. , несмотря на то, что говорится в этом сообщении об ошибке.
Я убедился, что все функции Windows, связанные с IIS, включены на сервере так же, как и на моем компьютере для разработки. Я пересобрал и приложение, и библиотеку. Я полностью удалил и переустановил пакет System.Security.Principal.Windows NuGet из обоих. Я попытался установить это в файле csproj для приложения:
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType
Я тоже пытался установить это в csproj:
<PropertyGroup>
<!--- ... -->
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<!--- ... -->
</PropertyGroup>
Пока ничего не получилось. Я не понимаю, почему это вообще проблема, учитывая, что на моей локальной машине она работала безупречно.
Какие-либо предложения? Решения, данные для других подобных проблем в переполнении стека, у меня не сработали.
packages.config
для пакетов NuGet? Сначала вы должны преобразовать ссылки на пакеты в файлы проекта. - person Lex Li   schedule 17.02.2021