无法安装 NuGet pck - Microsoft.Web.Infrastructure 不在我的 GAC 中
Unable to install NuGet pck - Microsoft.Web.Infrastructure is not in my GAC
错误:
添加引用失败。包 'SimpleInjector.Integration.WebApi.WebHost.QuickStart' 试图添加对 'Microsoft.Web.Infrastructure' 的框架引用,但在 GAC 中找不到。这可能是包中的错误。请联系包所有者寻求帮助。
找不到程序集 'Microsoft.Web.Infrastructure'.
首先。为什么当我有 dll 并在我的项目中引用它时出现错误?
其次。我该如何解决这个问题?
显然,我已尝试使用 Mircosoft 的各种指南将程序集添加到我的 GAC。 None 在我看来是有意义的。
https://docs.microsoft.com/en-us/dotnet/framework/app-domains/how-to-install-an-assembly-into-the-gac
这导致 "Failure adding assembly to the cache: The system cannot find the file specified." 我猜这是因为它不是带有密钥对的强类型名称或其他名称。所以我调查了这个 https://docs.microsoft.com/en-us/dotnet/framework/app-domains/how-to-sign-an-assembly-with-a-strong-name
这完全没有意义。它说:
"In the Choose a strong name key file box, choose , and then navigate to the key file. To create a new key file, choose and enter its name in the Create Strong Name Key dialog box."
什么密钥文件?创建一个新的,只是想出一个随机的名字?卧槽?这与特定程序集有何关系?
正如@Schadensbegrenzer 和@LeoLiu-MSFT 指出的那样,Infrastrcuture 程序集不再是 .NET 框架的一部分。
此问题已被报告为 SimpleInjectors 存储库上的错误:
https://github.com/simpleinjector/SimpleInjector/issues/509
包所有者解决方案:
“我会将此问题添加到 v4.1 积压工作中,并将使用 v4.1 修复 NuGet 包(以及 SimpleInjector.Integation.MVC3 的包)。
同时,您可以手动将 Microsoft.Web.Infrastructure NuGet 包添加到您的 Web API 项目中,或者不将 SimpleInjector.Integration.WebApi.WebHost.QuickStart NuGet 包添加到您的项目中,而只是SimpleInjector.Integration.WebApi NuGet 打包并手动添加需要的代码。 WebHost.QuickStart 包实际上只是对集成包的引用,同时将一些代码注入到您的应用程序中。
文档中的 Web API 集成页面介绍了如何使用 Simple Injector 设置 Web API 项目。“
我遇到了错误“Unable to uninstall 'Ninject.3.2.2' because 'Ninject.Extensions.ChildKernel.3.2.0, Ninject.Extensions.Conventions.3.2.0, Ninject.Web.3.2.0, Ninject.Web.Common.3.2.0' depend on it.
”的类似问题。
这是由于解决方案中的多个项目依赖于这些 DLL,因此包管理器无法卸载它。
带有 "uninstall package-name -RemoveDependency" 的命令在这里也不起作用。
我一个一个去掉依赖修复了。
错误: 添加引用失败。包 'SimpleInjector.Integration.WebApi.WebHost.QuickStart' 试图添加对 'Microsoft.Web.Infrastructure' 的框架引用,但在 GAC 中找不到。这可能是包中的错误。请联系包所有者寻求帮助。 找不到程序集 'Microsoft.Web.Infrastructure'.
首先。为什么当我有 dll 并在我的项目中引用它时出现错误? 其次。我该如何解决这个问题?
显然,我已尝试使用 Mircosoft 的各种指南将程序集添加到我的 GAC。 None 在我看来是有意义的。
https://docs.microsoft.com/en-us/dotnet/framework/app-domains/how-to-install-an-assembly-into-the-gac 这导致 "Failure adding assembly to the cache: The system cannot find the file specified." 我猜这是因为它不是带有密钥对的强类型名称或其他名称。所以我调查了这个 https://docs.microsoft.com/en-us/dotnet/framework/app-domains/how-to-sign-an-assembly-with-a-strong-name 这完全没有意义。它说: "In the Choose a strong name key file box, choose , and then navigate to the key file. To create a new key file, choose and enter its name in the Create Strong Name Key dialog box."
什么密钥文件?创建一个新的,只是想出一个随机的名字?卧槽?这与特定程序集有何关系?
正如@Schadensbegrenzer 和@LeoLiu-MSFT 指出的那样,Infrastrcuture 程序集不再是 .NET 框架的一部分。
此问题已被报告为 SimpleInjectors 存储库上的错误: https://github.com/simpleinjector/SimpleInjector/issues/509
包所有者解决方案:
“我会将此问题添加到 v4.1 积压工作中,并将使用 v4.1 修复 NuGet 包(以及 SimpleInjector.Integation.MVC3 的包)。
同时,您可以手动将 Microsoft.Web.Infrastructure NuGet 包添加到您的 Web API 项目中,或者不将 SimpleInjector.Integration.WebApi.WebHost.QuickStart NuGet 包添加到您的项目中,而只是SimpleInjector.Integration.WebApi NuGet 打包并手动添加需要的代码。 WebHost.QuickStart 包实际上只是对集成包的引用,同时将一些代码注入到您的应用程序中。
文档中的 Web API 集成页面介绍了如何使用 Simple Injector 设置 Web API 项目。“
我遇到了错误“Unable to uninstall 'Ninject.3.2.2' because 'Ninject.Extensions.ChildKernel.3.2.0, Ninject.Extensions.Conventions.3.2.0, Ninject.Web.3.2.0, Ninject.Web.Common.3.2.0' depend on it.
”的类似问题。
这是由于解决方案中的多个项目依赖于这些 DLL,因此包管理器无法卸载它。
带有 "uninstall package-name -RemoveDependency" 的命令在这里也不起作用。
我一个一个去掉依赖修复了。