前一段時間,我開發了一個自定義TFS簽入策略,即可與Visual Studio 2015一起正常工作。 現在我安裝了Visual Studio 2017,希望像以前一樣使用VS2015註冊簽入策略組件。但這不起作用。 如何使用VS2017註冊自定義簽入策略程序集?Visual Studio 2017中的自定義TFS簽入策略
對於VS2015,我有這些註冊表項:
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\TeamFoundation\SourceControl\Checkin Policies]
"MyCheckInPolicy"="C:\\Program Files\\My\\MyCheckInPolicy.dll"
和
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0_Config\TeamFoundation\SourceControl\Checkin Policies]
"MyCheckInPolicy"="C:\\Program Files\\My\\MyCheckInPolicy.dll"
,並相應地我說那些鍵VS2017(15.0
):
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\15.0\TeamFoundation\SourceControl\Checkin Policies]
"MyCheckInPolicy"="C:\\Program Files\\My\\MyCheckInPolicy.dll"
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\15.0_Config\TeamFoundation\SourceControl\Checkin Policies]
"MyCheckInPolicy"="C:\\Program Files\\My\\MyCheckInPolicy.dll"
但不幸的是這不起作用:
- 如果我打開團隊項目SourceControl設置,進入「簽入策略」選項卡,並嘗試添加...政策,
MyCheckInPolicy
不會出現 - 如果我打開已使用此簽入策略的團隊項目並執行上述操作,我收到一條錯誤消息,告訴我該程序集(
mycheckinpolicy
)「尚未註冊」。
當然,我在註冊表更改後重新啓動了IDE,但是即使是我的機器rebooting也沒有幫助。
的information我迄今發現似乎表明,簽入策略,現在必須延長(VSIX),我不想相信的一部分。
我想這個問題來自一些在將程序集加載到IDE時無法解析的引用。
MyCheckInPolicy
項目引用來自VS2015文件夾C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
的Microsoft.TeamFoundation.VersionControl.Client.dll
v14.0。
我試圖從VS2017文件夾中引用相應的DLL,但是然後程序集不能在這兩個 IDE中工作。
我也嘗試使用Nuget包「Microsoft.TeamFoundation.VersionControl.All」v12.0.30723.2來代替,並將輸出目錄中的所有文件(其中似乎包含該包的所有程序集)部署到提到的位置在註冊表項中。這有同樣的結果:無法在VS2015和VS2017中加載策略。
我們使用的是TFS 12.0.30723.0。
如此看來VS2017甚至沒有嘗試加載程序集和不關心的註冊表項?
謝謝你soo!我仍然不得不將引用的dll更改爲VS2017版本(不知道爲什麼nuget包的方式不起作用),但您的傑出解釋完美無缺! VS2017還有一些問題,如自定義編輯器的tfs構建定義......但這些都是另一天的問題......再次感謝。 –
沒問題,很樂意幫忙。由於沒有任何東西,我只是經歷了昨天工作的痛苦。 –
我試着在你的步驟之後創建一個新的檢查策略(謝謝你!),但我無法在Visual Studio中找到我的策略。我想要的是一個簡單的策略,用於檢查所有待處理的更改文件中的某個單詞,如果出現該單詞,則檢入應該失敗。也許已經有可能使用標準工具?提前致謝 ! – Lumo