- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在过去的几天里,我一直在拼命尝试解决我在安装 NuGet 包后遇到的依赖 hell 问题,该包从 System.Collections.*
中添加了一堆新的依赖项。 , System.Diagnostics.*
, System.IO.*
, System.Runtime.*
, System.Text.*
, System.Threading.*
和 System.Xml.*
namespace 。 MVC 项目我目前在目标 .Net 4.7.1 中遇到问题。
包安装将以下绑定(bind)重定向添加到我的 web.config
<dependentAssembly>
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.InteropServices" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IO" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Reflection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Extensions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Linq" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Xml.ReaderWriter" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Linq.Expressions" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
…导致以下异常:
Could not load file or assembly 'System.IO, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 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)
web.config 中突出显示的行是:
<add assembly="System.IO, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
我最终发现,如果我删除 System.IO
的绑定(bind)重定向它清除了该错误,然后提示绑定(bind)重定向列表中的其他项目之一。我一一删除了所有绑定(bind)重定向,问题就解决了。
我很难理解这里发生了什么。例如,如果我在 Visual Studio 项目的引用中查看 System.IO 的属性检查器,它指向 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.1\Facades\System.IO.dll
而不是 Nuget 文件夹,如果我在另一个编辑器中打开 .csproj 文件,我可以看到引用确实如下所示:
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
这里肯定有问题,因为有重复的 <Private>True</Private>
条目,我已经更正了一次,但它们被添加回来了。这是所有新组件的问题。我想知道 Nuget 包是否有问题?
如有任何帮助/建议,我们将不胜感激。
最佳答案
I wonder if there is an issue with the Nuget packages somewhere?
是的,这应该是 nuget 包的问题。一些 nuget 包依赖于 NETStandard.Library
,它会引入那些 system.*
依赖,另一方面,一些 nuget 包在 .NET 下安装依赖标准框架不正确,我什至报告过here和 here ,此问题与nuget包本身有关,我们需要联系此包的作者更新此包。
以上可能是您在安装添加了一堆 system.*
依赖项的 NuGet 包后进入的原因。同时,.NET Framework 4.7.1 添加了对 .NET Standard in-box 的支持,我们无需将那些 system.* nuget 包添加到包中。当其他 nuget 包拉入那些 system.*
依赖包时,nuget/VS 将为来自 nuget 的那些包添加绑定(bind)重定向到 web.config 文件,但 VS 使用那些 system.*
默认来自 .net framework,在这种情况下,由于绑定(bind)重定向,VS 可能找不到那些 system.*
依赖项。这就是您收到错误“无法加载文件或程序集‘System.IO...’”的原因。
要解决此问题,解决方法是从程序集的 web.config 文件中删除绑定(bind)重定向。检查线程 .NET Standard issues on .NET Framework 4.7.1了解一些细节。
此外,如果您不想将这些系统依赖项添加到您的项目中,您可以将它们从您的项目中删除。
希望这对您有所帮助。
关于c# - 无法加载文件或程序集 'System.IO, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' 或其依赖项之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51944480/
我遇到了一个使用内置全局化工具的 ASP.NET 应用程序崩溃的情况。 在带有 Culture="auto"指令的 ASP.NET 页面上,使用中性文化作为其浏览器语言(例如“zh-Hans”)的用户
某些类中是否有属性可以告诉我当前文化是否实际上是默认文化。 类似于本地化如何与 winforms 一起工作。如果语言是默认语言,它会以表格形式说明。 假设我在 en-US 中 - 我如何通过代码判断
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我知道这有点离题,但是当我们的应用程序出现问题时,IT 开发中使用的名称“BUG”的起源是什么? 最佳答案 因为一只蝴蝶被困在电脑里,它造成了一个错误。这是真的! 关于culture - 名称错误的起
他想知道我们是否应该有弹性工作时间,允许与工作无关的互联网访问等的意见。 我们公司大约有 200 人,一半是程序员,一半是销售。我们都希望工作场所富有成效且充满乐趣。 我应该提出哪些问题? 支持和反对
他们用拉丁语编码吗? 他们有自己的编程语言吗? 我只是好奇。 最佳答案 我为 Microsoft Windows 和 Office 维护韩文 IME(输入法编辑器)。因此,我每天与韩国开发者合作,定期
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我有一个云服务 Web 角色,需要在其上运行一些 PowerShell 以确保服务器始终设置在正确的区域性中:en-AU。 原因是 Microsoft 可以随时重置文化值(value)观。 当我运行时
我目前正致力于在 Kentico 8.2 中推出韩文版网站,并处理该网站的本地和开发版本。 我可以让一个页面以韩语加载,甚至可以在导航时以韩语加载一些后续页面。通常我导航到的第三或第四页将恢复为英语。
每当我添加 i18n.en.xml或类似的(只需以 .xml 结尾)并编译我的项目,该文件被编译成 en/.resources.dll ,尽管如此,我只是想将它作为资源单独嵌入到主程序集中。 我已将其
我发现我的机器和构建服务器上的测试结果不同。我设法找到了不同的单行。这是一个字符串比较。这两个字符串的第一个字符不同。 下面的测试在我的本地机器上通过了,但在构建机器上失败了。 [TestClass]
嗯,我正在尝试获取文化的默认日期格式。 例如,en-us 有“m/dd/yyyy”,en-uk 有“d/mm/yyyy”。文化可以是客户端机器上的任何东西。和 Dateformat 也可以是任何东西。
我最近在我的 powershell 脚本中与文化相关的返回值遇到了一些问题。相同的脚本返回不同的值,具体取决于它是哪台机器。 所以我认为可能文化设置不同,并且对于一台服务器它返回了。 get-cult
我正在尝试编写着陆页代码,通过阅读 Culture 来决定是将请求重定向到英文网站还是斯洛伐克语网站。 代码如下: public partial class _default : System.Web
这是一个 SEO 问题: 我可以选择根据访问者的文化显示页面标题。 如果是英文: getCulture() == 'en') : ?> Hello, this is an englis
CA1305当存在需要 IFormatProvider 的重载但代码中未使用此重载时引发。 例如,以下代码会引发此警告: string.Format("{0} - {1}", id, name); 消
我创建了一个 WPF 转换器类: public class DoubleConverter : IValueConverter { public object Convert(object v
我想要的是..如果文化是 en-US 那么 string dateFormat="MM/dd/yyyy"; string timeFormat="24.00 hrs"; 如果文化是 en-GB 那么
我想修改我的 UWP 应用,使其根据平台语言的不同而略有不同。我知道我可以在使用 C# 编程时获取文化信息,但这个应用程序是用 JavaScript 编写的。 我搜索了 MSDN 并查看了 gitHu
我是一名优秀的程序员,十分优秀!