3

C# Web アプリケーションを次の asp.net バージョンに更新したいと考えています。

走った

dnvm use  1.0.0-rc1-update1 -r clr arch x64 -p

dnvm list は、アクティブなバージョンが rc1-update1 に設定されていることを示しています

rc1-update1 を使用するように VS2015 ソリューションを更新したい

project.json を編集してバージョンを rc1-final から rc1-update1 に更新しました

ただし、VS は「パッケージの復元に失敗しました」と表示するようになりました。このようなエラーメッセージがあります。

Severity    Code    Description Project File    Line    Suppression State
Error   CS0234  The type or namespace name 'AspNet' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?)    MyBootStrap.DNX 4.5.1    

project.json で編集した依存関係の上にマウスを置くと、

ここに画像の説明を入力

一歩足りないに違いない。フレームワークのアクティブ バージョンを使用するようにプロジェクトをアップグレードするにはどうすればよいですか?

[更新] テンプレートから新しい Web アプリケーションを作成すると、まだ rc1-final を使用していることに気付きました。

ソリューション エクスプローラー ウィンドウに「パッケージの復元に失敗しました」というメッセージも表示されます。出力には次のように表示されます。

PATH=.\node_modules\.bin;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External;
%PATH%;C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\git
C:\Users\kirsten\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1\bin\dnx.exe "C:\Users\kirsten\.dnx\runtimes\dnx-clr-win-x86.1.0.0-rc1-update1\bin\lib\Microsoft.Dnx.Tooling\Microsoft.Dnx.Tooling.dll" 
restore "E:\EShared\Dev2016\MyBootStrap\src\MyBootStrap" -f "C:\Program Files (x86)\Microsoft Web Tools\DNU"
Microsoft .NET Development Utility Clr-x86-1.0.0-rc1-16231
  CACHE https://www.nuget.org/api/v2/
Restoring packages for E:\EShared\Dev2016\MyBootStrap\src\MyBootStrap\project.json
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Diagnostics'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.IISPlatformHandler'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Mvc.TagHelpers'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Server.Kestrel'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.StaticFiles'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.AspNet.Tooling.Razor'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Extensions.Configuration.FileProviderExtensions'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Extensions.Configuration.Json'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Extensions.Logging'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Extensions.Logging.Console'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.Extensions.Logging.Debug'
  CACHE https://www.nuget.org/api/v2/FindPackagesById()?id='Microsoft.VisualStudio.Web.BrowserLink.Loader'
Unable to locate Dependency Microsoft.AspNet.Diagnostics >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.AspNet.IISPlatformHandler >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.AspNet.Mvc >= 6.0.0-rc1-update1
Unable to locate Dependency Microsoft.AspNet.Mvc.TagHelpers >= 6.0.0-rc1-update1
Unable to locate Dependency Microsoft.AspNet.Server.Kestrel >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.AspNet.StaticFiles >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.AspNet.Tooling.Razor >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.Extensions.Configuration.FileProviderExtensions >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.Extensions.Configuration.Json >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.Extensions.Logging >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.Extensions.Logging.Console >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.Extensions.Logging.Debug >= 1.0.0-rc1-update1
Unable to locate Dependency Microsoft.VisualStudio.Web.BrowserLink.Loader >= 14.0.0-rc1-update1
Writing lock file E:\EShared\Dev2016\MyBootStrap\src\MyBootStrap\project.lock.json
Restore complete, 413ms elapsed

このことから、dnx の x86 バージョンを実行しようとしていることがわかります。なぜでしょうか?

[更新] なぜ nuget.org/api/v2 を使用するのか疑問に思っているので、拡張機能マネージャーを使用して nuget を再インストールしました。Extension Manager にバージョン 3.3.0.167 が表示されますが、Package Manager の出力ウィンドウにはまだ V2 が表示されます。

Windows 7 を実行しています

【更新】project.jsonは

{
  "version": "1.0.0-*",
  "compilationOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-update1",
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-update1",
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-update1",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-update1",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-update1",
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-update1",
    "Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-update1",
    "Microsoft.Extensions.Configuration.FileProviderExtensions" : "1.0.0-rc1-update1",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-update1",
    "Microsoft.Extensions.Logging": "1.0.0-rc1-update1",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc1-update1",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-update1",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-update1"
  },

  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel"
  },

  "frameworks": {
    "dnx451": { },
    "dnxcore50": { }
  },

  "exclude": [
    "wwwroot",
    "node_modules"
  ],
  "publishExclude": [
    "**.user",
    "**.vspscc"
  ],
  "scripts": {
    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
  }
}

これが私のNuGet.Configファイルです

    <?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageRestore>
    <add key="enabled" value="True" />
    <add key="automatic" value="True" />
  </packageRestore>
  <packageSources>
    <add key="SBD" value="E:\EShared\NuGet" />
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
  </packageSources>
  <activePackageSource>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
  </activePackageSource>
</configuration>

ここに私のパッケージソースがあります

SBD は社内で開発したほんの一部です。それが物事に影響を与えるべきではないと思います。

ここに画像の説明を入力

4

2 に答える 2

6

dnx (Microsoft .NET Execution environment) のバージョン、dnvm (.NET Version Manager) のバージョンとアセンブリのバージョン番号が混在しているようです。

ASP.NET にはモジュール構造があります。これには長所と短所があります。まず、次を使用して現在の dnvm (.NET バージョン マネージャー) を調べることができます。

dnvm version

使用できます

dnvm update-self

最新バージョンに更新します。

同じように使用できます

dnvm list

プロファイルにインストールされているすべての dnx (Microsoft .NET 実行環境) を表示します。%USERPROFILE%\.dnx\runtimes. インストールされている dnx のバージョンごとにフォルダーが作成されます。を使用しdnvm use 1.0.0-rc1-update1 -r clr arch x64 -pて PATH を変更します。デフォルトで使用されている現在のバージョンの dnx を確認できます

dnx --version

%USERPROFILE%\.dnx\runtimesで PATH に含めたのサブディレクトリから dnx.exe を使用しますdnvm use ...

Visual Studio Project を使用する場合は、通常、次global.jsonを含むものを作成します

{
  "projects": [
    "src"
  ],
  "sdk": {
    "version": "1.0.0-rc1-update1"
  }
}

このような設定は、ソリューション/プロジェクトのビルド中に使用する必要がある dnx のバージョンを通知します。

上記のすべての手順は、現在リリースされている多数の既存パッケージのバージョンとは関係ありません。ページhttps://www.nuget.org/packages/に移動して、パッケージの名前を検索できます。NuGet 構成でhttps://www.nuget.org/api/v2/またはhttps://api.nuget.org/v3/index.jsonを使用すると、同じパッケージが見つかります。http://myget.org/gallery/aspnetmasterを調べて、「マスター」ビルド (安定ビルド) の ASP.NET 5 アセンブリの現在のバージョンを確認し、http://myget.org/gallery/aspnetvnext を調べることができます最新のもの (GitHub dev からの不安定版) を表示します。https://www.myget.org/gallery/で他の多くのフィードを見つけることができます、しかし私の意見では、使用したい場合はhttps://api.nuget.org/v3/index.jsonhttps://www.myget.org/F/aspnetmaster/api/v3/index.jsonのみを使用する必要がありますASP.NET 5 の最新の安定版リリース。

http://myget.org/gallery/aspnetmasterからの最新の安定版リリースには「1.0.0-rc1-final」という名前が付いていますが、別のバージョンが*-rc1-final. 同じように、http://myget.org/gallery/aspnetvnext からの不安定なビルド現在"v1.0.0-rc2-16357"という名前*-rc2-16357になっていますが、多くのアセンブリがあり、別のバージョンが.

つまり、すべての依存関係の名前を version を使用するように変更するだけではいけません"*-rc1-update1"。コンテキスト メニューで [NuGet パッケージの管理...] を開き、[プレリリースを含める] をオンにして [更新] タブを選択すると、 の [依存関係] に含めた新しいパッケージpackage.jsonがリリースされているかどうかを確認できます。新しいパッケージが見つかった場合にのみ更新できますが-rc1-update1、すべてのパッケージに を使用するとエラーが発生します。

于 2016-01-01T23:00:17.820 に答える
2

一部のツールは、エイリアスに従ってフレームワークを選択します。コマンド ラインで、エイリアス「default」が 1.0.0-rc1-update1 clr x64 バージョンに割り当てられているかどうかを確認します。そうでない場合は、次のコマンドを実行します。

dnvm alias default 1.0.0-rc1-update1 -a x64 -r clr

これで問題は解決するはずです。

于 2016-01-01T15:14:43.877 に答える