【发布时间】:2018-07-12 19:47:46
【问题描述】:
错误: 未能添加参考。 'SimpleInjector.Integration.WebApi.WebHost.QuickStart' 包尝试添加对 GAC 中未找到的'Microsoft.Web.Infrastructure' 的框架引用。这可能是包中的错误。请联系包所有者寻求帮助。 找不到程序集“Microsoft.Web.Infrastructure”。
首先。当我有 dll 并在我的项目中引用它时,为什么会出现错误? 第二。我该如何解决这个问题?
显然,我已尝试使用 Mircosoft 的各种指南将程序集添加到我的 GAC。 imo,它们都没有意义。
https://docs.microsoft.com/en-us/dotnet/framework/app-domains/how-to-install-an-assembly-into-the-gac 这将导致“将程序集添加到缓存失败:系统找不到指定的文件”。我想那是因为它不是带有密钥对或其他任何东西的强类型名称。所以我调查了这个https://docs.microsoft.com/en-us/dotnet/framework/app-domains/how-to-sign-an-assembly-with-a-strong-name 这完全没有意义。它说: "在选择强名称密钥文件框中,选择 ,然后导航到密钥文件。要创建新的密钥文件,请在创建强名称密钥对话框中选择并输入其名称。"
什么密钥文件?创建一个新的,只是想出一个随机的名字?什么?这与特定的程序集有什么关系?
【问题讨论】:
-
我检查了 SimpleInjector.Integration.WebApi.Webhost.Quickstart 的 nuspec 文件,它添加了对 Microsoft.Web.Infrastructre 的引用作为 FrameworkAssembly
<frameworkAssemblies> <frameworkAssembly assemblyName="Microsoft.Web.Infrastructure" targetFramework=".NETFramework4.0" /> </frameworkAssemblies> -
但据我所知,
Microsoft.Web.Infrastructure是一个 nuget 包,不是 .net 框架的一部分。 -
@Schadensbegrenzer 啊哈,我明白了。也许在某个时候,基础设施程序集已从 .net 框架中删除。我会尝试联系包所有者。
-
@Kasper Skov ,据我所知,它没有安装在.NET Framework中,其他成员之前也报告过这个问题:github.com/fsprojects/Paket/issues/1393或forums.asp.net/t/…。当然,如果您从包所有者那里得到任何最新信息,请随时分享最新信息。
标签: visual-studio visual-studio-2017 nuget .net-assembly gac