web-dev-qa-db-ja.com

ASP.NET Core 2:ApplicationInsightsがありません

ASP.NET Core 2アプリケーションを公開していますが、次のエラーが表示されます。

Error:
  An Assembly specified in the application dependencies manifest (MyApp.deps.json) was not found:
    package: 'Microsoft.ApplicationInsights.AspNetCore', version: '2.1.1'
    path: 'lib/netstandard1.6/Microsoft.ApplicationInsights.AspNetCore.dll'

  This Assembly was expected to be in the local runtime store as the application was published using the following target manifest files:
    aspnetcore-store-2.0.0-linux-x64.xml;aspnetcore-store-2.0.0-osx-x64.xml;aspnetcore-store-2.0.0-win7-x64.xml;aspnetcore-store-2.0.0-win7-x86.xml

開発環境ではこのエラーは見られませんでした。だから何が間違っていたのかわからない。これを修正する方法についてのアイデアはありますか?

更新

SDKをインストールし(ランタイムのみをインストールしました)、すべてが機能し始めました。しかし、これが最善の解決策であるかどうかはわかりません。

24
erdinger

このアセンブリは、ローカルランタイムストアにあることが期待されていました

ASP.NET Core Runtime Storeがインストールされていないため、このエラーが発生しています。これを修正するには2つのオプションがあります。

  1. ASP.NET Coreランタイムストアをインストールします。 .NET Core SDKにバンドルされているため、SDKをインストールするとこれが修正されました。こちらからダウンロードして、SDKなしでストアのみをインストールすることもできます: https://www.Microsoft.com/net/download/all

  2. ランタイムストアトリミングを使用しないでください。 csprojファイルでこのプロパティを設定することにより、トリミングを無効にできます。

    <PropertyGroup>
        <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
    </PropertyGroup>

コマンドラインでこれを渡すこともできます。

dotnet publish /property:PublishWithAspNetCoreTargetManifest=false

更新:2018年6月25日

この回答は、ASP.NET Core 2.0プロジェクトにのみ適用されます。 ASP.NET Core 2.1では、ランタイムストアはもうありません。

34
natemcmaster

プロジェクトにMicrosoft.NETCore.App(プロジェクトターゲットフレームワーク)および Microsoft.AspNetCore.All (NuGet依存関係は.NET Core 2.0プロジェクトのデフォルトで含まれています)または Microsoft.AspNetCore.App (.NET Core 2.1+プロジェクトの場合)。

プロジェクトターゲットフレームワークを.NET Core 2.0から.Net Core 2.1に更新したことがある場合は、NuGetの依存関係が自動的に更新されないため、それに応じて更新することを忘れないでください。

12
pallxk

この問題については、ここで詳しく説明します: https://github.com/dotnet/coreclr/issues/13542 Microsoftの更新に関連しているようです.AspNetCore.Allをプロジェクトのバージョン2.0.3以降に。

上記の説明に続いて、しばらくの間、ソリューションはホスティングマシンに最新の.NET Core SDKをインストールすることであったようです。しかし、少なくとも現在のSDK 2.1.300では、これで問題は解決しませんでした。

私にとっての解決策は、メインプロジェクトの.csprojに次の行を追加することでした。

  <PropertyGroup>
    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
  </PropertyGroup>

この行を使用すると、フレームワークのすべての依存関係が公開フォルダーにパックされます!私のプロジェクトの1つの公開データは、この切り替えにより15 Mbから55 Mbに増加しました。しかし、より良い解決策が見つかるまで、少なくともこれは機能します。

9
Jpsy

@pallxkの答えに何かを追加したいと思います。彼は私の問題を解決するためのヒントをくれました。私はVisual Studioの使用に精通していますが、VSコードにはあまり精通していません。

Visual Studioでは問題はありませんでしたが、VS Codeでは彼が述べたように、Nugetの依存関係を手動で更新する必要があります。それらをどこで更新するかわからなかった。それらは私のプロジェクトフォルダの下にありました:

.vscode/launch.json

更新する必要があります

"program": "${workspaceFolder}/Ghaseel.RestApi/bin/Debug/netcoreapp2.1/myProject.dll

これに

 "program": "${workspaceFolder}/Ghaseel.RestApi/bin/Debug/netcoreapp2.2/myProject.dll

これが他の人の問題解決に役立つことを願っています。

0