部署到Azure应用程序服务时缺少应用程序洞察DLL



我在发布到Azure应用程序服务后收到以下错误:

无法加载文件或程序集'Microsoft '。ApplicationInsights,版本=1.2.0.5639,文化=中性,PublicKeyToken=31bf3856ad364e35'或者它的一个相关项。系统找不到指定的文件

在WebAPI项目中,我清楚地看到微软。ApplicationInsights参考,版本号为"1.2.0.5639"。

我使用VSO作为我的构建服务器(vNext不是基于xml的)。我注意到在VSO构建日志中,我收到了一个警告,DLL也丢失了。

C: 程序文件(x86) [ 14.0 bin Microsoft.Common.CurrentVersion.targets (1819 5):MSB3245:无法解析此引用。找不到大会"微软"。= 1.2.0.5639 ApplicationInsights,版本,文化=中立,都必须31 bf3856ad364e35,processorArchitecture = MSIL"。检查以确保程序集存在于磁盘。如果您的代码需要此引用,您可能会得到编译错误。

构建服务器也清楚地显示:

主要参考"Microsoft。= 1.2.0.5639 ApplicationInsights,版本,文化=中立,都必须31 bf3856ad364e35,processorArchitecture = MSIL" .

带有以下警告:

[warning]C:Program Files (x86)MSBuild14.0bin microt.common . currentversion .targets(1819,5):

警告MSB3245:无法解析此引用。找不到大会"微软"。= 1.2.0.5639 ApplicationInsights,版本,文化=中立,都必须31 bf3856ad364e35,processorArchitecture = MSIL"。检查以确保程序集存在于磁盘。如果您的代码需要此引用,您可能会得到编译错误。

我现在唯一能想到的可能是处理器架构是MSIL的问题?

更新:我还发布了3个web工作(每个都是用户应用程序洞察自己的权利)。目前,我将webjobs列入"webjobs-list"。json'文件,但我正在删除它,希望隔离问题。似乎有2/3的webjob能够找到DLL并将其复制到它们的

更新2:从JSON文件中删除WebJobs没有帮助。

更新3:好的,所以我设法让它工作。但是,只有当我从Visual Studio IDE部署时,而不是通过我在VSO上的自动构建。*(我使用Visual Studio上下文菜单,右键单击WebAPI项目,然后找到应用程序洞察菜单项,并使用"添加应用程序洞察向导"。这很奇怪,因为App Insights已经在这个项目上工作了很长时间。但在我将其链接到我现有的应用程序洞察实例后,它在web.config中添加了一些条目。构建/部署使WebAPI重新开始工作。我甚至在WebJobs中添加了JSON文件

确保在DLL的属性视图中将Copy Local设置为"True"

另一种猜测-可能是软件包文件夹路径的问题?与本地安装相比,VSO构建可能会有所不同吗?如果用于引用包文件夹

,请确保定义了SolutionDir变量

在我的案例中,当我通过Visual Studio中的解决方案资源管理器上下文菜单将Application Insights添加到我的项目中时,所有的NuGet包(不知何故)都没有正确添加。

我的解决方案将在本地构建,但当使用Visual Studio Team Services构建时,会像这个问题中描述的那样失败。在删除我的本地工作区后,然后再次从VSTS下载所有内容,尝试在本地构建我的解决方案将以与在线相同的方式失败。

我发现,虽然我的电脑上本来有所有需要的NuGet软件包,但是点击"Add Application Insights Telemetry…"上下文菜单项并没有更新我的软件包。

所以在构建服务器上,在清理我的工作区文件夹之后,NuGet不会恢复所有必需的包,因为它们并没有全部列在包中。配置文件。

丢失的包裹是:

<package id="Microsoft.ApplicationInsights" version="2.1.0" targetFramework="net45" />
<package id="Microsoft.ApplicationInsights.Agent.Intercept" version="1.2.1" targetFramework="net45" />

我的解决方案是回滚添加了Application Insights的变更集,以防其他我不知道的东西被破坏,然后使用上下文菜单选项再次添加它。第二次似乎工作正常。

最新更新