我一直在尝试启动并运行本地版本的NuGet服务器。我创建了一个空网站,并通过VS2010中的NuGet安装了NuGet服务器包。当我运行它时,我会得到“主页”,但是当点击包裹Feed时,我得到了这个:
服务器在处理请求时遇到错误。例外 消息是'无法加载文件或程序集'NuGet.Core, Version = 1.4.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或 其中一个依赖项。定位程序集的清单定义 与装配参考不匹配。 (HRESULT的例外情况: 0x80131040)”。请参阅服务器日志以获取更多详异常堆栈 追踪是:
at NuGet.Server.DataServices.Packages.CreateDataSource()at System.Data.Services.DataService
1.CreateDataSourceInstance() at System.Data.Services.DataService
1.CreateProvider()at System.Data.Services.DataService1.HandleRequest() at System.Data.Services.DataService
1.ProcessRequestForMessage(流 messageBody)在SyncInvokeProcessRequestForMessage(Object,Object [], 对象[])在 System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(对象 实例,对象[]输入,对象[]&输出) System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc&安培; rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc&安培; rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage41(MessageRpc&安培; rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage4(MessageRpc&安培; rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage31(MessageRpc&安培; rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage3(MessageRpc&安培; rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc&安培; rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc&安培; rpc)at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage1(MessageRpc&安培; rpc)at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)
包管理器下拉的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的异常:0x80131040)'。请参阅服务器日志 更多细节。
DLL肯定在bin文件夹中,就是那个版本。我已经尝试将引用的“特定版本”属性更改为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>
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>
虽然,老实说,我已经通过运气得到了它,但我不确定为什么要修复它。任何想法都会受到欢迎。
答案 0 :(得分:0)
现在应该修复。如果不是,请在http://nuget.codeplex.com
上提交错误答案 1 :(得分:0)