. NET вывод сборки с использованием «ссылочных сборок» nuget вместо фактических библиотек: ссылочные сборки не должны загружаться для выполнения - PullRequest
0 голосов
/ 14 июля 2020

У меня есть проект, который, когда я запускаю его как консольное приложение, отлично работает. Он получает правильные ссылки на пакеты через nuget и работает. Я пытаюсь использовать Npg sql, что составляет root проблемы.

Когда я создавал свой облачный проект Azure, который использует эту библиотеку, в выходных данных сборки вместо этого используется версия "ref" Вместо этого System.Runtime.CompilerServices.Unsafe и System.ValueTuple. Поэтому, когда я go запускаю свое приложение, я получаю такие ошибки:

BadImageFormatException: Could not load file or assembly 'System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. 
Reference assemblies should not be loaded for execution.  They can only be loaded in the Reflection-only loader context. (Exception from HRESULT: 0x80131058)

Это не проблема перенаправления привязки. Как видно из ошибки «Справочные сборки не должны загружаться для выполнения», проблема заключается в том, что выходные данные сборки используют ссылочные сборки, а не фактические библиотеки из пакета nuget.

Мой проект использует новый стиль csproj и использует «PackageReference» для Npg sql и рассматриваемых пакетов.

Есть ли способ запретить моему csproj использовать «ссылочные сборки»?

Есть ли возможность в msbuild как-то изменить это?

...