gpt4 book ai didi

c# - 在库中使用 .Net Standard 1.4 并在应用程序中使用 .Net framework 4.6.1 时,无法加载文件 System.IO.FileSystem,Version=4.0.1.0

转载 作者:太空狗 更新时间:2023-10-29 23:12:42 25 4
gpt4 key购买 nike

我有一个包含一个库和 2 个应用程序的解决方案。这些应用程序代表相同的程序,其中一个是通过 UAP10 构建的以 Windows App Store 为目标,另一个是为使用 .Net Framework 4.6.1 的 Microsoft Windows PC 构建的。我正在使用 Visual Studio 2017。

  • 我将库项目设置为 .Net standard 1.4。
  • 我将 UWP 应用程序设置为以 Windows 10 Aniversary Edition(10.0;Build 14393)、最低版本 Windows 10(10.0;Build 10586)为目标。
  • 我将通用 Windows 应用程序设置为以 .Net Framework 4.6.1 为目标。

UWP 版本可以正常编译和运行。

最初,.Net Framework 4.6.1 编译并运行。但是,当我从 System.IO 调用 File.Open 时,我收到以下错误消息:

System.IO.FileNotFoundException: 'Could not load file or assembly 'System.IO.FileSystem, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.'

带有 File.Run 的代码块在库代码 (.Net Standard 1.4) 中。我不确定是什么导致了这个问题。我认为我可以在引用 .Net Framework 4.6.1 的应用程序中使用 .Net Standard 1.4 库。


作为解决方法,我尝试在 .Net Framework 应用程序中安装 System.IO 的 Nuget 包。 System.IO 版本 4.0.1.0 甚至不是一个选项。有一个4.0.10的版本,但是安装了这个Nuget包就不行了。

那么,在引用 .Net Standard 1.4 库中的 System.IO 代码的 .Net Framework 4.6.1 应用程序中,如何正确引用 System.IO 操作?

最佳答案

这通常发生在“经典”csproj 项目中,当引用的项目需要覆盖覆盖系统定义的类型但不存在正确设置它的绑定(bind)重定向时。将所有包安装到 .net 框架应用程序(例如 NETStandard.LibraryNETStandard.Library.NETFramework(对于即将推出的 .NET Standard 2.0))时,应该这样做自动。

要强制生成绑定(bind)重定向,请将其添加到 .NET Framework 项目的 csproj 文件中(如果它是一个可执行项目,第二个属性应该无关紧要,但不会造成伤害):

<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>

关于c# - 在库中使用 .Net Standard 1.4 并在应用程序中使用 .Net framework 4.6.1 时,无法加载文件 System.IO.FileSystem,Version=4.0.1.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44257436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com