Visual Studio Online Hosted Build Controller无法找到程序集Microsoft.WindowsAzure.Diagnostics

时间:2014-10-22 03:27:23

标签: tfs azure-devops

我们正在使用VSO托管的构建控制器来运行我们的CI构建。构建已经开始失败,但工作正常。

C:\ Program Files(x86)\ MSBuild \ 12.0 \ bin \ amd64 \ Microsoft.Common.CurrentVersion.targets(1697):无法解析此引用。无法找到程序集" Microsoft.WindowsAzure.Diagnostics,Version = 2.4.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35,processorArchitecture = MSIL"。检查以确保磁盘上存在程序集。如果您的代码需要此引用,则可能会出现编译错误。

此程序集应解析为Azure SDK,该SDK应根据http://listofsoftwareontfshostedbuildserver.azurewebsites.net/包含在主机中,尽管http://www.visualstudio.com/en-us/get-started/hosted-build-controller-vs.aspx表示主机仅支持最多2.3。我们虽然有这座建筑。

Azure SDK的所有程序集都适用于2.4版。它在本地构建,并且我的机器上没有安装以前版本的SDK。我们有像这样的绑定重定向...

<dependentAssembly>
    <assemblyIdentity name="Microsoft.WindowsAzure.Diagnostics" publicKeyToken="31BF3856AD364E35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.4.0.0" newVersion="2.4.0.0" />
  </dependentAssembly>

有没有人见过这个?

4 个答案:

答案 0 :(得分:2)

您可以使用Visual Studio在受影响的项目中的Microsoft.WindowsAzure.Diagnostics参考中设置“特定版本”属性来解决此问题(右键单击参考并在“解决方案资源管理器”中选择“属性”)。这将导致构建服务器使用2.3版本的程序集。

如果您在2.4 SDK中使用任何新的类或方法,这可能不起作用,但它至少会为您提供临时解决方案,直到MS解决问题。

以下是我的工作参考图片

Specific Version Reference for Azure Diagnostics Assembly

最后,请查看链接(真的很旧)以获取有关特定参考版本的更多信息:http://www.codemag.com/article/0507041

答案 1 :(得分:1)

我今天开始经历了同样的事情。不确定发生了什么变化。 以下是https://connect.microsoft.com/VisualStudio/feedback/details/1007907/error-deploying-to-azure-sdk-2-4

我为解决这个问题所做的是创建旧样式的lib文件夹,并为其添加了诊断和运行时dll。我从那里改变我的csproj引用。而这似乎已经解决了它

答案 2 :(得分:1)

该错误现在是fixed。使用Azure SDK 2.4不再需要解决方法。

答案 3 :(得分:0)

我添加了一个powershell脚本来打印构建服务器上的所有库。有关此内容的完整指南here。该脚本包含以下行

gp HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* 

打印列表中缺少Windows Azure Libraries for .NET - v2.4,所有其他版本都可用。这已成为connect.microsoft上的活动错误。

在修复之前,将2.4库添加到源或恢复到早期版本的azure将是唯一的解决方法。