2014-07-09 22 views
0

步驟「的路徑訪問被拒絕」我的自定義活動組件:在溫度時負載生成定義工藝參數

  1. 打開構建定義「測試1」,它指向的「builder1建設控制器「控制器1」 「機,然後點擊‘進程’標籤

  2. 打開構建定義‘test2的’,其指向建立控制器‘builder2‘機,然後點擊‘進程’標籤’上的’控制器2

錯誤是:路徑{路徑}的Team Foundation錯誤訪問被拒絕

enter image description here

值得注意的是:我還得到在輸出窗口中的錯誤,例如:

Summary: There were 0 failures, 6 errors and 0 warnings loading custom activities and services. 
Error: Could not load file or assembly 'Microsoft.TeamFoundation.VersionControl.Client, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) 
Error: API restriction: The assembly 'file:///C:\Users\{!REDACTED!}\AppData\Local\Temp\VSTFSBuild\df2044d9-c8bb-4666-9c93-513e149cd3e0\Microsoft.TeamFoundation.Build.Client.dll' has already loaded from a different location. It cannot be loaded from a new location within the same appdomain. 

我沒有證明這兩個錯誤是相關的(我也得到類似的API限制錯誤任何時候我加載過程參數),但他們可能是。

我有這個雙控制器設置的原因是因爲controller1使用我自定義活動的路徑,例如$/Process/Dev和controller2使用路徑$/Process/Production。它可以幫助我隔離測試我的更改。

所以問題是:有什麼我不知道微軟支持使用多個構建控制器(在單獨的機器上)指向相同的TFS實例嗎?

或者,對於如何測試自定義活動的更改而不強制所有構建指向更改,我都有不同的想法。

回答

1

我會建議您的BuildTasks.dll在兩個位置都不同。我會更新dll到任何位置錯誤的最新版本,或者將兩個控制器指向同一個dll,如果你想維護不同的源位置,你也可以確保dll有不同的版本號。支持多個控制器並正常工作。

作爲一種短期修復,開放不同的構建定義之間清除高速緩存,因此2個不同的dll的不互相

原因交鋒我有這兩個控制器的設置是因爲控制器1 使用我的自定義活動的路徑,例如$/Process/Dev和controller2 使用路徑$/Process/Production。它幫助我測試我在隔離中的更改。

目前尚不清楚哪臺機器打開了構建定義,但我認爲這是您的開發機器,我在開發時總是將我的buildtasks.dll放入Visual Studio的公共文件夾中。

+0

如果我告訴你BuildTasks.dll是相同的(例如相同的校驗和),你的答案會改變嗎?目前,我相信我有開發和生產均衡 – JohnZaj

+0

也許.. ;-)你在什麼TFS版本?出於興趣,清除緩存/應用數據會帶來任何改進 –