无法加载文件或程序集 'NuGet.Server, Version=2.11.1.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一

Could not load file or assembly 'NuGet.Server, Version=2.11.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies

所以我已经按照本教程通过 ASP.Net Web 应用程序创建了一个 NuGet 服务器:http://nugetserver.net/ 它托管在 IIS 中。我已将这些文件连同我的包裹一起放在我服务器上的 D: 驱动器上。

IIS 站点虚拟路径:

当我导航到 url 时,我收到以下 错误

如果图片不够清晰,请看下面:

Could not load file or assembly 'NuGet.Server, Version=2.11.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

这是我的项目的 web.config 文件以及我的 发布配置文件

我的目标 .NET Framework 版本是 4.6,但包本身是 .NET 早期版本的包。这可能是问题所在吗?我获取了项目文件夹并将其放在本地计算机上的物理路径上,当我 运行 项目处于调试模式时它工作正常。请看下面的截图:

注意:由于组织保密政策,我必须隐藏包名称。

我指向这些包文件:

D:\Backup\Dropbox\vox_server_01\nuget\Packages

我创建这个 NuGet 服务器的原因是因为现有的有问题。

这可能是 IIS 中用户组的权限问题吗?这个 link Could not load file or assembly 'someProject' or one of its dependencies. Access is denied 让我想到了那个问题。关于如何解决这个问题有什么建议吗?

更新: 下面是我的包源:

我无法复制您的错误,但这里有一些说明如何解决 nuget 服务器问题:

web.config 中的 packagesPath 键可以留空,因为您已经在使用默认文件夹 \Packages。

部署到服务器时,您可能会在Access to the path <b>server</b>.cache.bin 行中发现错误。只需在您的服务器上创建一个具有该名称的空白文件。

因为同样的问题来到这里。有趣的是,我的解决方案也名为 "Nuget.Server"。更改我的程序集名称(在项目属性下)修复了它。将其重命名为 "NugetServer"

如果在您的 Web.config 中引用了此 NuGet.Server 包,请将其从文件中删除并重试 运行。与 web.config

中错误引用的 BadImageFormatException 非常相似