Я пытался запустить и запустить локальную версию сервера NuGet.Я создал пустой веб-сайт и установил пакет сервера NuGet через NuGet в VS2010.Когда я запускаю его, я получаю «главную» страницу, но при переходе по фиду пакетов я получаю следующее:
Сервер обнаружил ошибку при обработке запроса.Сообщение об исключении: «Не удалось загрузить файл или сборку» NuGet.Core, Версия = 1.4.0.0, Культура = Нейтральный, PublicKeyToken = 31bf3856ad364e35 'или одна из его зависимостей.Определение манифеста обнаруженной сборки не соответствует ссылке на сборку.(Исключение из HRESULT: 0x80131040).Смотрите журналы сервера для более подробной информации.Трассировка стека исключений:
в NuGet.Server.DataServices.Packages.CreateDataSource () в System.Data.Services.DataService 1.CreateDataSourceInstance() at
System.Data.Services.DataService
1.CreateProvider () в System.Data.Services.DataService 1.HandleRequest() at
System.Data.Services.DataService
1.ProcessRequestForMessage (Stream messageBody) в SyncInvokeProcessRequestForMessage (Object, Object [], Object []) в System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke (экземпляр объекта, входы Object [], Object [] & output) в 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.ServiceMode.Dispatcher.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 и является этой версией.Я попытался изменить свойство ссылки "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>
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>
Хотя, если честно, у меня все получилось благодаря удаче, и я не совсем уверен, почему это исправляет это.Любые идеи будут очень приветствоваться.