发布到Azure App Service后,我收到以下错误。
无法加载文件或程序集'Microsoft.ApplicationInsights, Version = 1.2.0.5639,Culture = neutral,PublicKeyToken = 31bf3856ad364e35' 或其中一个依赖项。系统找不到指定的文件。
在WebAPI项目中,我清楚地看到Microsoft.ApplicationInsights引用,版本号是“1.2.0.5639”。
我使用VSO作为我的构建服务器(vNext不是基于XAML的)。我注意到在VSO构建日志中我收到了一条警告,说明DLL也丢失了。
C:\ Program Files (86)\的MSBuild \ 14.0 \ BIN \ Microsoft.Common.CurrentVersion.targets(1819,5): 警告MSB3245:无法解析此引用。找不到 程序集“Microsoft.ApplicationInsights,Version = 1.2.0.5639, Culture = neutral,PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL“。检查以确保程序集存在 磁盘。如果您的代码需要此引用,您可能会得到 编译错误。
构建服务器也清楚地显示了这一点:
主要参考“Microsoft.ApplicationInsights,版本= 1.2.0.5639, Culture = neutral,PublicKeyToken = 31bf3856ad364e35, ProcessorArchitecture用于= MSIL”。
发出以下警告:
[警告] C:\ Program Files(x86)\ MSBuild \ 14.0 \ bin \ Microsoft.Common.CurrentVersion.targets(1819,5):
警告MSB3245:无法解析此引用。找不到 程序集“Microsoft.ApplicationInsights,Version = 1.2.0.5639, Culture = neutral,PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL“。检查以确保程序集存在 磁盘。如果您的代码需要此引用,您可能会得到 编译错误。
我现在唯一能想到的可能是处理器架构是MSIL的问题吗?
更新:我还发布了3个Web作业(每个作业用户凭借自己的权限)。目前我将webjobs包含在'webjobs-list.json'文件中,但是我将其删除以希望隔离问题。似乎2/3 webjobs能够找到DLL并将其复制到
更新2:从JSON文件中删除WebJobs没有帮助。
更新3:好的,所以我设法让它运转起来。但是,仅当我从Visual Studio IDE部署时,而不是通过我在VSO上的自动构建。 :*(我通过右键单击WebAPI项目然后查找Application Insights菜单项并使用'添加应用程序洞察向导'来使用Visual Studio上下文菜单。这很奇怪,因为App Insights在此项目中已经工作了很长时间。但是在我将它链接到我现有的应用洞察实例后,它在web.config中添加了一些条目。构建/部署让WebAPI重新开始工作。我甚至将WebJobs添加回JSON文件。
答案 0 :(得分:0)
确保DLL的属性视图中Copy Local设置为" True"
答案 1 :(得分:0)
另一个猜测 - 可能是包文件夹路径的问题?与本地安装相比,VSO构建可能有所不同吗?如果它用于引用包文件夹
,请确保定义SolutionDir变量答案 2 :(得分:0)
就我而言,当我通过Visual Studio中的解决方案资源管理器上下文菜单将Application Insights添加到我的项目时,所有NuGet包都(不知何故)未正确添加。
我的解决方案将在本地构建,但在使用Visual Studio Team Services构建时,此问题中所述将会失败。删除我的本地工作区后,再次从VSTS下载所有内容,尝试在本地构建我的解决方案将失败的方式与在线时相同。
我发现虽然我最初在计算机上安装了所有必需的NuGet软件包,但点击"添加应用程序洞察遥测..."上下文菜单项没有正确更新我的packages.config文件。
因此,在构建服务器上,清理完工作区文件夹后,NuGet无法恢复所有必需的软件包,因为它们并未全部列在packages.config文件中。
缺少的包是:
<package id="Microsoft.ApplicationInsights" version="2.1.0" targetFramework="net45" />
<package id="Microsoft.ApplicationInsights.Agent.Intercept" version="1.2.1" targetFramework="net45" />
我的解决方案是回滚添加了Application Insights的变更集,以防其他任何我不知道的情况被破坏,然后使用上下文菜单选项将其重新添加回来。它第二次似乎正常工作。