Ошибка Microsoft.Bcl.AsyncInterfaces (в методе CSVHelper) при запуске приложения, установленного проектом установки Visual Studio
У меня есть приложение WPF, которое читает файл CSV, используя CSVHelper
который я установил с помощью NuGet
. Вот информация о версии проекта, системы и т. Д.
Microsoft Windows 7 Professional, версия 6.1.7601, пакет обновления 1, сборка 7601
Microsoft Visual Studio Community 2019, версия 16.4.5
Диспетчер пакетов NuGet 5.4.0
Целевая платформа проекта WPF: .NET Framework 4.7.2
Версия CSVHelper: 15.0.5
Метод чтения CSV прост; прочитать файл и поместить его в список. Ничего фантастического. Я свяжу весь проект внизу, чтобы вы могли его скачать и попробовать, если хотите.
Когда я запускаю исполняемый файл, созданный в Release
или Debug
строит, работают нормально. Они читают файл, помещают содержимое в список и отображаютDataGrid
просто хорошо. Следующим шагом я создал стандартнуюVisual Studio Setup
проект и создал msi
установщик, который я использовал для установки приложения на свой компьютер.
Однако когда я запускаю этот исполняемый файл (который находится в моем каталоге Program Files), приложение выдает исключение. Вот сообщение об исключении и трассировка стека.
Could not load file or assembly 'Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.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)
at ReadCSVTest.MainWindow.ReadPeopleList(String path, List`1& people, String& msg)
at ReadCSVTest.MainWindow..ctor()
Поскольку ошибка говорит, что не удалось загрузить сборку Microsoft.Bcl.AsyncInterfaces
, Я добавил это из NuGet и снова запустил все, но все равно получаю ошибку. В чем проблема? Что это значитReference assemblies should not be loaded for execution. They can only be loaded in the Reflection-only loader context.
? И почему я получаю это исключение только при запуске исполняемого файла, установленного проектом установки?
Пожалуйста, скачайте весь проект ЗДЕСЬ.
1 ответ
Просто так, что кто-нибудь столкнется с той же проблемой в будущем; как Джонс предложил в комментариях, понижение каждой из двух библиотек до следующих версий устранило проблему для меня.
CsvHelper ==> 12.3.2
А также
Microsoft.Bcl.AsyncInterfaces ==> 1.0.0