2016-11-17 129 views
3

因此,我有一個快樂地工作的ASP.NET Core 1.0應用程序,目標是net461框架。將.NET Core應用程序升級到1.1的錯誤

今天我試着(按說明書on this page所有你需要做的是一個NuGet包升級)

這導致了錯誤的下列轉換將其升級到新的ASP.NET 1.1的核心:

error: Unable to resolve 'Microsoft.AspNetCore.Diagnostics.Abstractions (>= 1.1.0)' for '.NETFramework,Version=v4.6.1'. 
error: Unable to resolve 'Microsoft.AspNetCore.Hosting.Abstractions (>= 1.1.0)' for '.NETFramework,Version=v4.6.1'. 
error: Unable to resolve 'Microsoft.AspNetCore.Http.Extensions (>= 1.1.0)' for '.NETFramework,Version=v4.6.1'. 
error: Unable to resolve 'Microsoft.AspNetCore.WebUtilities (>= 1.1.0)' for '.NETFramework,Version=v4.6.1'. 
error: Unable to resolve 'Microsoft.Extensions.FileProviders.Physical (>= 1.1.0)' for '.NETFramework,Version=v4.6.1'. 
error: Unable to resolve 'Microsoft.Extensions.Logging.Abstractions (>= 1.1.0)' for '.NETFramework,Version=v4.6.1'. 
error: Unable to resolve 'Microsoft.Extensions.Options (>= 1.1.0)' for '.NETFramework,Version=v4.6.1'. 
error: Unable to resolve 'System.Diagnostics.DiagnosticSource (>= 4.3.0)' for '.NETFramework,Version=v4.6.1'. 
error: Unable to resolve 'System.Reflection.Metadata (>= 1.4.1)' for '.NETFramework,Version=v4.6.1'. 
error: Unable to resolve 'Microsoft.AspNetCore.Mvc.ApiExplorer (>= 1.1.0)' for '.NETFramework,Version=v4.6.1'. 
error: Unable to resolve 'Microsoft.AspNetCore.Mvc.Cors (>= 1.1.0)' for '.NETFramework,Version=v4.6.1'. 
... 

我在這裏錯過了什麼?這不應該工作嗎?

僅供參考,這裏有project.json的相關章節(運行的NuGet升級前):

"dependencies": { 
    "Microsoft.AspNetCore.Mvc": "1.0.0", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", 
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0", 
    "Microsoft.Extensions.Logging": "1.0.0", 
    "Microsoft.Extensions.Logging.Console": "1.0.0", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", 
    "Microsoft.AspNetCore.Diagnostics": "1.0.0", 
    "Microsoft.AspNetCore.StaticFiles": "1.0.0", 
    "Microsoft.AspNet.WebApi.Client": "5.2.3" 
    }, 

    "tools": { 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final" 
    }, 

    "frameworks": { 
    "net461": { 
     "imports": [ 
     ] 
    } 
    } 

編輯:運行的NuGet升級後,依賴關係部分是由Visual Studio改變了這種:

"dependencies": { 
    "Microsoft.AspNet.WebApi.Client": "5.2.3", 
    "Microsoft.AspNetCore.Diagnostics": "1.1.0", 
    "Microsoft.AspNetCore.Mvc": "1.1.0", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0", 
    "Microsoft.AspNetCore.StaticFiles": "1.1.0", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", 
    "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0", 
    "Microsoft.Extensions.Configuration.Json": "1.1.0", 
    "Microsoft.Extensions.Logging": "1.1.0", 
    "Microsoft.Extensions.Logging.Console": "1.1.0", 
    "Microsoft.Extensions.Logging.Debug": "1.1.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0" 
    }, 
+1

您是否下載了1.1 SDK/Tools? – Tseng

+0

你可以在更新nuget包後發佈你的project.json依賴項部分嗎? – AdrienTorris

+0

是的,安裝了1.1 SDK(在添加/刪除程序中顯示爲「Microsoft .NET Core 1.1.0-SDK 1.0.0 Preview 2.1-03177(x64)」) 另外,在帖子 – gallivantor

回答

9

我終於想通了,以防其他人有同樣的問題。

有三個步驟,使其工作:

  1. 出於某種原因,標準「微軟和.NET」的NuGet飼料不包括這些包..我只好打開的NuGet設置並勾選「nuget.org」飼料。完成後,它能夠恢復v1.1包

  2. 我所引用的博客文章沒有提到你需要打開你的global.json文件並將SDK版本更改爲"1.0.0-preview2-1-003177"(出於某種原因v1 .1仍然有一個名爲v1.0.0的SDK - 任何想法發生了什麼?!?)

  3. 做完這兩件事後,試圖運行該應用程序產生了500錯誤,但在網絡中啓用stdoutLogEnabled後。 config可以看到的例外是:

System.IO.FileLoadException:無法加載文件或程序集 'System.Collections.Immutable,Version = 1.2.0.0,Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a'或其依賴項之一。該 位於集清單定義不匹配裝配 參考。

要解決此問題,您需要刪除應用程序的bin文件夾,然後重新生成(由於某種原因「重建解決方案」不夠)。當您部署到Production時,可能還需要刪除bin文件夾,否則您可能會遇到同樣的問題。

+0

#1獨自讓它爲我工作 - 雖然我不得不重新啓動VS出於某種原因。 –

0

我懷疑類似的東西是什麼@gallivantor在他的#1所提到的,但不知何故東西不停重寫UI背後的NuGet.config文件和每個@吉姆-W的建議,當我重新啓動Visual Studio中的NuGet.org項目要回去取消選中。

所以我決定看看NuGet.config文件,發現有兩個部分:<packageSources><disabledPackageSources>。與NuGet.org關鍵的來源是在兩個。我試圖從禁用的軟件包部分刪除它,並開始工作。

前:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <packageSources> 
    <clear /> 
    <add key="NuGet.org" value="https://api.nuget.org/v3/index.json" /> 
    </packageSources> 
    <disabledPackageSources> 
    <add key="nuget.org" value="true" /> <!-- This is what I was referring to --> 
    </disabledPackageSources> 
</configuration> 

後:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <packageSources> 
    <clear /> 
    <add key="NuGet.org" value="https://api.nuget.org/v3/index.json" /> 
    </packageSources> 
</configuration> 

警告:我忽略了一些細節(尤其是關於環境),以確保答案很簡單。在將此解決方案應用於您的情況之前,請確保它適合您的情況。

相關問題