【发布时间】:2020-09-04 14:41:54
【问题描述】:
我有一个 WPF 应用程序,它使用 CSVHelper 读取 CSV 文件,我使用 NuGet 安装它。这是项目、系统等版本信息。
Microsoft Windows 7 专业版 6.1.7601 Service Pack 1 Build 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 安装程序,用于在我的 PC 中安装应用程序。
但是,当我运行该可执行文件(位于我的 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. 是什么意思?为什么我只有在运行安装项目安装的可执行文件时才会出现这个异常?
请从HERE下载整个项目。
【问题讨论】:
-
我想知道它是否与这个问题有关。 github.com/JoshClose/CsvHelper/issues/1462您可以尝试降级到 CsvHelper 版本 14 或 13,看看是否可行。
-
我也有同样的问题。我不得不降级到 CsvHelper 12.3.2 abd Microsoft.Bcl.AsyncInterfaces 到 1.0.0。
-
感谢您的提示。让我试试看效果如何!
-
@Jones,降级到那些确切的版本号也为我修复了它。谢谢!
标签: wpf visual-studio setup-project csvhelper base-class-library