2013-11-01 51 views
2

我有通過VSIX部署的自定義簽入策略。現在,我想在Visual Studio 2013年VS 2013沒有看到我的自定義簽入策略

我做什麼使用它們: 我在2013年VS開了我的政策改變「安裝目標」中vsixmanifest至10.0,13.0)。 然後建立項目,安裝VSIX並打開VS.

VSIX項目使用.NET Framework 4.5,策略項目使用4.0。

我有什麼:

  • 最後一個版本我的政策在C:\Users\...\AppData\Local\Microsoft\VisualStudio\12.0Exp\Extensions目錄
  • 副本的政策既2012年和2013 VS在C:\Users\...\AppData\Local\Microsoft\VisualStudio\11.0(and 12.0)\Extensions
  • 重點與路徑,政策在註冊表中的兩個VS in HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0_Config(and 12.0_Config)\TeamFoundation\SourceControl\Checkin Policies

現在,當我想將它們應用於Team Project Settings -> Source Control -> Check-in Policy -> Add,我可以在VS 2012中選擇我的自定義策略,但VS 2013只是看不到它們。

我能做些什麼來解決它?

UPD:

所以,我解決我的問題由11.0 Microsoft.TeamFoundation.VersionControl.Client變換組件版本12.0 .NET Framework版本在政策的項目,從4.0到4.5

+1

簽入策略引用了一些Visual Studio版本特定的程序集,您需要更改對VS2013的引用並重新編譯。 –

+0

@JoachimIsaksson謝謝,這有幫助!但現在VS2012沒有看到政策。有沒有更好的方法來制定VS的策略,而不是將兩個不同版本的DDL放到VSIX上? –

+0

不是我所知道的,對不起。 –

回答

6

由於原來的海報已經發布,.NET和引用的客戶端對象模型的版本:

  • 對於Visual Studio 2005 ,你需要引用8.0.0.0組件和你的項目必須是AnyCPU .NET 2.0項目。
  • 對於Visual Studio ,您需要引用9.0.0.0程序集,並且您的項目必須是AnyCPU .NET 3.0項目。
  • 對於Visual Studio ,您需要引用10.0.0.0程序集,並且您的項目必須是AnyCPU .NET 4.0項目。
  • 對於Visual Studio ,您需要引用11.0.0.0程序集,並且您的項目必須是AnyCPU .NET 4.0項目。
  • 對於Visual Studio ,您需要引用12.0.0.0程序集,並且您的項目必須是AnyCPU .NET 4.5項目。
  • 對於Visual Studio ,您需要引用14.0.0.0程序集,並且您的項目必須是AnyCPU .NET 4.6項目。

如果安裝了多個版本的Visual Studio,則需要多次部署程序集,每個版本的Visual Studio都需要部署一次。這些程序集必須具有相同的AssemblyName和相同的AssemblyVersion並且使用相同的強名稱進行簽名。

的策略必須各自在註冊表中的下列鍵註冊:

  • HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\{VisualStudioVersion}\TeamFoundation\SourceControl\Checkin Policies
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\{VisualStudioVersion}\TeamFoundation\SourceControl\Checkin Policies(64位操作系統只)
  • HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\{VisualStudioVersion}_Config\TeamFoundation\SourceControl\Checkin Policies(應當通過運行devenv /setup自動添加)

A more extensive walkthrough can be found on my blog

+0

我正在使用VSIX將我的簽入策略分發給VS 2012和VS 2013?我有它使用兩個單獨的VSIX項目工作;其中一個針對2012年,另一個針對2013年?由於2012年和2013年簽到政策程序集需要具有相同的AssemblyName,有沒有一種方法可以使用單個VSIX包項目部署到VS的兩個版本?謝謝。 – deadlydog

+0

到目前爲止,我還使用了不同的vsix,我建議爲此發佈一個新問題。 – jessehouwing

2

我同樣的問題,在VS 2008/2010上工作的自定義策略不能在vs2013中正確安裝。最後,我在VS 2013中打開了自定義策略項目,然後我讀了Microsoft.TeamFoundation.VersionControl.Client引用並編譯它。現在它的工作原理與VS2010一樣。