2017-05-31 66 views
0

好吧,這是Could not load file or assembly 'NuGet.Server, Version=2.11.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies的衍生物,看起來好像我找不到解決方案。NuGet服務器找不到.nupkg包文件

我將我的Nuget服務器項目發佈到我的Windows 2012 R2服務器並指向文件所在的適用目錄。包文件存在,如截屏圖所示,但是我不斷收到以下錯誤:

enter image description here

Severity Code Description Project File Line Suppression State Error Copying file Packages\PackageName.1.0.0.nupkg to obj\Release\Package\PackageTmp\Packages\PackageNameJson.1.0.0.nupkg failed. Could not find file 'Packages\PackageName.1.0.0.nupkg'. nuget_server_02 0

我的NuGet服務器v2.11.3安裝和我的項目的目標.NET框架4.6。有一點要注意的是,這些包本身來自.NET的早期版本 - 最有可能是3.5。

這是我的web.config文件

<add key="packagesPath" value="D:\RootFolder\SubFolder\SolutionNameFolder\ProjectNameFolder\Packages"/> 

即使經過多次嘗試Restore NuGet Packages我仍然面臨着這種困境。我非常難以理解的一件事情是,如果我將packagesPath指向本地目錄,它可以工作,但是會檢索包,但是當我指向服務器上的同一個項目時,我很頭疼。

以前,在相關SO問題的包含鏈接中,我可以發佈,但現在我甚至無法完成該階段,即使自上次工作以來我從未對該項目進行任何更改。我決定今天重新審視它。

UPDATE:

我已經刪除bin文件夾和重建我的解決方案爲每Could not load file or assembly 'someProject' or one of its dependencies. Access is denied但它仍然無法找到該文件。

回答

0

你可以運行你的nuget服務器,它會顯示一個html文件作爲輸出(Default.aspx)。當然,你可以修改這個文件,使它看起來像你想要的任何東西,否則改變它。您不能更改nuget服務器服務的行爲方式,因爲它是從dll運行的。您應該能夠使用nuget服務器的輸出頁面顯示您的存儲庫文件。

我遇到了一組類似的錯誤,並在我試圖顯示存儲庫的內容時監視了事件查看器。

事件查看器顯示每次我的Nuget服務器試圖列出軟件包文件夾的內容時都會引發錯誤。

請記住nuget包是zip文件,並且要顯示nuget包中包含的信息的詳細信息,nuget服務器必須解壓縮它們。如果文件損壞,服務器將發出錯誤並停止嘗試列出任何其他文件的內容。此錯誤導致w3wp.exe崩潰。它將在事件日誌的Windows->應用程序部分中記錄爲ASP.NET錯誤。

對我來說,治療方法是刪除我的nuget服務器上的packages文件夾的內容,然後重新啓動它們。

如果您的存儲庫中有很多文件,這可能不切實際,因此應該選擇在事件查看器中顯示的第一個錯誤附近上傳的任何文件,以便首先上傳。

其中一個文件可能損壞。

我會建議檢查您的服務器上的事件查看器,並確保您的存儲庫中沒有損壞的文件。

您可以使用Nuget包資源管理器查看(並編輯一個點)您的存儲庫內容。如果您要查看的文件已損壞,則應顯示該文件的錯誤。然後您可以重新生成該文件,如果問題是文件問題,則可以解決該問題。

如果失敗,您也可以重新安裝nuget服務器。代碼有可能不太可能被破壞,但值得一試。

祝你好運。