NuGet服务器找不到NuGet.Core DLL
我一直在尝试启动并运行NuGet服务器的本地版本。我已经创建了一个空网站,并通过VS2010中的NuGet安装了NuGet服务器包。当我运行它时,我会看到“主页”,但当点击包提要时,我会看到: 服务器在处理请求时遇到错误。例外 消息为“无法加载文件或程序集”NuGet.Core, 版本=1.4.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35'或 它的一个依赖项。找到的程序集的清单定义 与程序集引用不匹配。(HRESULT的例外情况: 0x8013100)”。有关详细信息,请参阅服务器日志。异常堆栈 跟踪是: 位于NuGet.Server.DataServices.Packages.CreateDataSource()的 System.Data.Services.DataServiceNuGet服务器找不到NuGet.Core DLL,nuget,Nuget,我一直在尝试启动并运行NuGet服务器的本地版本。我已经创建了一个空网站,并通过VS2010中的NuGet安装了NuGet服务器包。当我运行它时,我会看到“主页”,但当点击包提要时,我会看到: 服务器在处理请求时遇到错误。例外 消息为“无法加载文件或程序集”NuGet.Core, 版本=1.4.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35'或 它的一个依赖项。找到的程序集的清单定义 与程序集引用不匹配。(HRESULT的例外情况: 0x8013100)”。
1.CreateDataSourceInstance()位于
System.Data.Services.DataService
1.CreateProvider()位于
System.Data.Services.DataService1.HandleRequest()位于
System.Data.Services.DataService
1.ProcessRequestFormMessage(流
messageBody)在SyncInvokeProcessRequestFormMessage(对象,对象[],
对象[])位于
System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(对象
实例、对象[]输入、对象[]和输出)
System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&
rpc)在
System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&
rpc)在
System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc&
rpc)在
System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&
rpc)在
System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&
rpc)在
System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc&
rpc)在
System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc&
rpc)在
System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc&
rpc)在
System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc&
rpc)位于System.ServiceModel.Dispatcher.MessageRpc.Process(布尔值
等操作上下文集)
包管理器下拉的Nuget.Core版本是1.4.20615.9012。我在解决方案中的任何地方都看不到对1.4.0.0的任何引用
我尝试添加程序集绑定重定向来处理此问题:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="NuGet.Core" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.4.0.0" newVersion="1.4.20615.9012"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
但这只是将错误更改为
服务器在处理请求时遇到错误。例外
消息为“无法加载文件或程序集”NuGet.Core,
版本=1.4.20615.9012,区域性=中性,
PublicKeyToken=31bf3856ad364e35'或其依赖项之一。这个
定位程序集的清单定义与程序集不匹配
参考资料。(来自HRESULT:0x8013100的例外情况)”。有关详细信息,请参阅服务器日志
更多细节
DLL肯定在bin文件夹中,并且是该版本。我已尝试将引用的“Specific Version”属性更改为False,但这没有任何区别
有人对我下一步可以尝试什么有什么建议吗
更新 在浏览项目文件时,我发现:
<Reference Include="NuGet.Core, Version=1.4.20609.9012, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\NuGet.Core.1.4.20615.9012\lib\net40\NuGet.Core.dll</HintPath>
<SpecificVersion>False</SpecificVersion>
</Reference>
..\packages\NuGet.Core.1.4.20615.9012\lib\net40\NuGet.Core.dll
假的
1.4.20609.9012似乎与任何东西都不匹配,所以我不确定这是从哪里来的。但是,将我的绑定更新到这个似乎是可行的:
<dependentAssembly>
<assemblyIdentity name="NuGet.Core" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="0.0.0.0-1.4.0.0" newVersion="1.4.20609.9012"/>
</dependentAssembly>
不过,老实说,我靠运气让它工作,我真的不知道为什么这会修复它。任何想法都会受到欢迎。这应该现在就解决。如果不是,请在上提交一个bug,了解一下这个问题,因为我以前也遇到过这个问题,并以类似的方式修复了它-尽管我的问题发生在我有多个.sln文件和项目的地方,并且通过Nuget包下载,绑定变得完全错误。它开始引用我不使用也没有的版本,所有的绑定都被弄糟了。基本上,简单的解决方案是重新编写您自己的绑定,并检查您是否删除了(隐藏文件),如果您有任何可能影响项目的其他绑定版本的引用。不幸的是,在我看来,我的EF太聪明了,编写和引用了错误的绑定,虽然更新Nuget包也没有帮助,但我很高兴你得到了解决方案。如果任何人确实有这样的问题,只需检查您的引用、版本和绑定即可