Сервер NuGet не может найти DLL NuGet.Core - PullRequest
0 голосов
/ 15 июля 2011

Я пытался запустить и запустить локальную версию сервера 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>

Хотя, если честно, у меня все получилось благодаря удаче, и я не совсем уверен, почему это исправляет это.Любые идеи будут очень приветствоваться.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2014

, просто немного поняв это, я и раньше сталкивался с проблемой и исправлял ее аналогично себе - хотя у меня это произошло, когда у меня было несколько файлов и проектов .sln, и через загрузку пакета Nuget привязки стали совершенно неправильными.он начал ссылаться на версии, которые я не использую и не имел, и все привязки были испорчены.в основном, простое решение - переписать свои собственные привязки и проверить, удаляются ли они (скрытые файлы), если таковые имеются, ссылки на другие версии привязок в любом месте, которые могут повлиять на ваш проект.к сожалению, это происходит на мой взгляд, когда мой EF пытался быть слишком умным и писал и ссылался на неправильные привязки, хотя обновление пакетов Nuget тоже не помогло, но я рад, что вы получили свое решение.если у кого-то есть такие проблемы, просто начните с проверки ваших ссылок, версий и привязок.

0 голосов
/ 02 августа 2011

Это должно быть исправлено сейчас.Если это не так, пожалуйста, сообщите об ошибке на http://nuget.codeplex.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...