2014-10-22 40 views
5

我們使用VSO託管的構建控制器來運行我們的CI構建。構建已經開始失敗,工作正常。Visual Studio Online Hosted Build Controller找不到組件Microsoft.WindowsAzure.Diagnostics

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」。檢查以確保程序集存在於磁盤上。如果您的代碼需要此引用,則可能會出現編譯錯誤。

此程序集應解析爲應包含在主機中的根據http://listofsoftwareontfshostedbuildserver.azurewebsites.net/的Azure SDK,但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> 

有沒有其他人看到過這個?

+0

是否添加綁定重定向讓你建立?我正在考慮瞄準2。3版本的SDK,讓它生成 – crabCRUSHERclamCOLLECTOR 2014-10-22 05:22:24

+0

我們正在構建目標爲2.4的綁定重定向。我們已經把它重新調整到了2.3,並且這樣做了。 – user1385713 2014-10-22 09:13:09

+0

我們突然間也開始瞭解這一點。 2.4版本的構建工作已經進行了數週,突然之間(從昨天開始),我們得到了相關的錯誤。 e類型或命名空間名稱'Diagnostics'在命名空間'Microsoft.WindowsAzure'中不存在(您是否缺少程序集引用?) 當然,他們錯誤地刪除了這種形式的託管構建控制器? – Kramer00 2014-10-22 09:31:26

回答

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

0

我加了一個PowerShell腳本打印出構建服務器上的所有庫。完整的指南可以在here找到。腳本由以下行

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

在Windows Azure圖書館爲.NET的 - V2.4從印刷列表丟失,所有其它版本可供選擇。這已被提升爲connect.microsoft上的一個活動錯誤。

在修復此問題之前,將2.4庫添加到源或恢復到早期版本的azure將是唯一的解決方法。

1

這個bug現在是fixed。解決方法不再需要使用Azure SDK 2.4。