系统空间程序集的问题

本文关键字:问题 程序集 空间 系统 | 更新日期: 2023-09-27 18:34:41

我最近尝试在本地运行我的应用程序来测试某些东西,但由于汇编问题而无法测试。 具体说来:

无法加载文件或程序集"系统空间,版本=5.2.0.0, 区域性=中性,公钥令牌=31bf3856ad364e35'或其之一 依赖。系统找不到指定的文件。

因此,我在这里闲逛,并找到了手动将内容添加到配置文件或通过NuGet卸载并重新安装内容的引用。我们不使用 NuGet 来处理任何事情,所以我对更改应用程序以开始这样做持谨慎态度。 因此,我开始编辑配置文件以尝试解决此问题。我添加了以下行,并解决了无法加载系统空间的问题:

<dependentAssembly>
    <assemblyIdentity name="Microsoft.Data.Edm" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.5.0.0" newVersion="5.5.0.0" />
</dependentAssembly>

但现在我收到这条消息:

无法加载文件或程序集"Microsoft.Data.Edm"或其之一 依赖。找到的程序集的清单定义没有 匹配程序集引用。(HRESULT的例外:0x80131040(

也许公钥令牌在版本更改时不准确? 我不确定首先破坏程序集发生了什么(因为我没有修改代码,也没有使用 NuGet 更新此项目的包(,或者为什么清单关闭。

谁能阐明这里发生的事情,它是如何造成的,以及我可以采取的其他可能的步骤来纠正它?

系统空间程序集的问题

我通过删除项目中 obj 文件夹的内容并重建来解决此问题。

我遇到了同样的问题。删除 System.Spatial(版本 5.6.3( 引用并添加 System.Spatial(版本 5.6.4( 将解决此问题。

我认为您使用的是手动安装的共享库(使用 gac-util(,如果是这样,您可以通过单击引用->添加引用->浏览然后浏览到此位置来包含该库C:''Windows''Microsoft.NET''assembly''GAC_32''yourlibrary无论如何,也许你应该避免更改.config文件,除非你知道你在做什么。

MVC 4 项目所需的最小包数应约为 20。如果您有很多未使用的引用(例如很可能是 System.Spatial 引用(,只需执行以下操作:

  1. 打开 packages.config 以查看所有软件包
  2. 保存原始包的副本以供参考
  3. 打开程序包管理器控制台
  4. 在 PM 运行时>卸载包系统.空间
  5. 生成并运行或部署以查看问题是否消失。如果确实需要引用,它不会构建。
  6. 如果项目在没有引用的情况下无法构建,PM> Install-Package System.Spatial -Version [version](使用包.config副本中的版本号(

Nuget 非常适合管理包的合法更新,但是当安装了许多未使用的包并且去年版本的 MVC 或 .NET 中的单个依赖项将您扔进 DLL 地狱时,这是一种痛苦。

以上

这些都没有帮助我。在为这个问题花费了一天之后,我的解决方案只是以下两个步骤:

  • 打开包管理器控制台窗口
  • 输入PM> Install-Package WindowsAzure.Storage -Version [your_version_number]-preview -Pre

这应该会自动将所有依赖项适合当前的 Azure 版本

我删除了项目中的引用,因为它没有被使用。这为我解决了它。