Невозможно вызвать проект .NET 4.6.1 из DotNetCore при публикации в IIS - PullRequest
0 голосов
/ 24 октября 2018

В настоящее время у меня есть REST API DotNetCore (нацелен на v2.1), который ссылается на проект DotNetStandard (нацелен на v2.0).Проект .NET Standard содержит ссылку на проект .NET Full Framework (нацеленный на v4.6.1), который выполняет вызов базы данных Sybase IQ.

Все это прекрасно работает, когда я запускаю свое приложение в VS2017 с использованием IIS Express, однако, когда я публикую приложение и пытаюсь вызвать конечную точку Api, которая ссылается на приложение .NET 4.6.1, я получаю следующую ошибку:

System.IO.FileNotFoundException: не удалось загрузить файл или сборку> 'System.Drawing.Common, версия = 0.0.0.0, культура = нейтральная,>?> PublicKeyToken = cc7b13ffcd2ddd51'.Системе не удается найти указанный файл.

Странно то, что ни один из моих проектов или ссылочных библиотек не ссылается на System.Drawing.Common (или что-либо в пространстве имен System.Drawing).Все остальные функции работают как положено.

Я пытался вручную добавить System.Drawing.Common.dll с помощью Nuget (последняя версия 4.5.1), но это не решает проблему.После добавления пакета Nuget я попытался добавить перенаправление привязки сборки в файл web.config в опубликованной папке:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Drawing.Common" culture="neutral" 
            publicKeyToken="cc7b13ffcd2ddd51" />
            <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.6.26919.2" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>

Но ошибка по-прежнему сохраняется.

У кого-нибудь есть идеи о том, что может быть причиной этого?

1 Ответ

0 голосов
/ 31 октября 2018

Лекс Ли ответил правильно.Я изменил целевую платформу для приложения Api на net471, и теперь она работает как положено.

...