Windows Server 2016インスタンスで.NET Coreアプリケーションを実行しようとしています。私のWindows 10マシンでうまくビルド/実行します。
最初にdotnet publish
を実行し、公開サイトをWindows Serverインスタンスにコピーします。私は このガイド に従い、ホスティングバンドルと最新のSDKの両方をインストールしました(2.1.3
)。
ただし、dotnet myapp.dll
を実行しようとすると、次のエラーメッセージが表示されます。
It was not possible to find any compatible framework version
The specified framework 'Microsoft.AspNetCore.All', version '2.1.1' was not found.
- Check application dependencies and target a framework version installed at:
C:\Program Files\dotnet\
- Installing .NET Core prerequisites might help resolve this problem:
http://go.Microsoft.com/fwlink/?LinkID=798306&clcid=0x409
- The .NET Core framework and SDK can be installed from:
https://aka.ms/dotnet-download
- The following versions are installed:
2.1.0 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
確かにMicrosoft.AspNetCore.All
は2.1.0
にあるProgram Files\dotnet\shared
バージョンのみを持っていることがはっきりとわかります。正しい2.1.1
バージョンを取得するにはどうすればよいですか?
どんなガイダンスも大歓迎です。
このリンクを使用して、2.1.1コアSDKバージョンをインストールします。
Microsoft.AspNetCore.Allパッケージの公開に問題があり、VS update/Core SDKインストールで自動的にインストールされるように設定されていないようです。少なくとも私にとっては。 nugetパッケージもわずか10時間前に追加され、ダウンロード数は0でした。そのため、デフォルトでは2.1.0のままです。これを修正するために私が最初に行ったのは、ASP.NET Webアプリテンプレートが使用するものを確認することでした(デフォルトを変更し続けているため、更新している古いプロジェクトがある場合、デフォルトテンプレートの変更を確認することも常に便利です) )。
私の修正は、.csprojファイルのタグからVersionパラメーターを削除することでしたが、現在はデフォルトのテンプレートで行われています。元の:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.1.1" />
</ItemGroup>
変更後:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" />
</ItemGroup>
これは基本的に、最新のインストール済みバージョン、つまり今のところ2.1.0に解決されます。ほとんどの場合、2.1.1は今後のアップデートでインストールされます。最新のパッケージを手動でインストールすることもできますが、可能であればデフォルトに戻すことをお勧めします。これにより、将来のアップデートでシステムが壊れる可能性が低くなります。
次の2つのオプションがあります。
サーバーに2.1.1フレームワークをインストールします(別の回答で述べたように)
必要なすべてのアセットを使用してアプリを公開します。これは、次のコマンドで実行できます。
dotnet publish --self-contained