У меня есть проект, который, когда я запускаю его как консольное приложение, отлично работает. Он получает правильные ссылки на пакеты через 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 как-то изменить это?