ASP.NET Core 2:缺少ApplicationInsights

时间:2017-09-29 15:16:17

标签: asp.net-core asp.net-core-2.0

我正在发布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

我在Dev环境中没有看到这个错误。所以不确定出了什么问题。关于如何解决这个问题的任何想法?

更新

我安装了SDK(我只安装了运行时),一切都开始工作了。不确定这是否是最好的解决方案。

5 个答案:

答案 0 :(得分:34)

  

此程序集应位于本地运行时存储区

您收到此错误是因为您没有安装ASP.NET Core Runtime Store。您有两种方法可以解决此问题。

  1. 安装ASP.NET Core Runtime Store。它与.NET Core SDK捆绑在一起,这就是安装SDK修复此问题的原因。您也可以在没有SDK的情况下安装商店,方法是在此处下载:https://www.microsoft.com/net/download/all

  2. 不要使用运行时存储修剪。您可以通过在csproj文件中设置此属性来禁用剪裁。

  3.     <PropertyGroup>
            <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
        </PropertyGroup>
    

    您也可以在命令行中传入此内容。

    dotnet publish /property:PublishWithAspNetCoreTargetManifest=false
    

    更新:2018年6月25日

    此答案仅适用于ASP.NET Core 2.0项目。在ASP.NET Core 2.1中,不再有运行时存储。

答案 1 :(得分:11)

确保您的项目具有 Microsoft.NETCore.App (您的项目目标框架)和Microsoft.AspNetCore.All的匹配版本(默认情况下包含在.NET Core 2.0项目中的NuGet依赖项)或{ {3}}(适用于.NET Core 2.1+项目)。

如果您曾经将项目目标框架从.NET Core 2.0更新到.Net Core 2.1,请记住相应地更新您的NuGet依赖项,因为它们不会自动更新。

答案 2 :(得分:9)

此问题在此处详细讨论: 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>

使用此行,所有框架依赖项将打包到发布文件夹中!我的一个项目的公布数据通过此开关从15 Mb增加到55 Mb。但至少可行,直到有更好的解决方案。

答案 3 :(得分:0)

我想在@pallxk的答案中添加一些内容。他给了我解决我问题的提示。 我熟悉使用Visual Studio,但不熟悉VS Code。

使用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

我希望这可以帮助其他人解决他们的问题。

答案 4 :(得分:0)

我已经通过安装nuget软件包解决了这个问题

“ Microsoft.AspNetCore.ApplicationInsights.HostingStartup”