如何發布Visual Studio Addins?

來源:互聯網
上載者:User
    前些天協助一個項目做了針對VS Addins安裝問題的研究,簡單總結一下。問題背景:使用VS2005 Addin模板產生MyAddin1工程, 完成了Addin的編譯,產生MyAddin1.dll和MyAddin1.AddIn兩個檔案備用,通常我們在Debug的時候都是把MyAddin1.AddIn裡的路徑改為卻對路徑,然後把它拷貝到%Documents%\Visual Studio 2005\Addins下面,這個看起來很簡單,但是在客戶機器上,我們該怎麼做呢?
    如果我們坦然告訴客戶說你這樣安裝——先把assembly拷到某某地方,在把addin檔案拷到某某地方,客戶肯定會說我不會,然後你的跑去折騰,然後不久客戶又說有問題,你得繼續過去折騰;如此下去,貌似問題解決,但是突然有一天,客戶安裝了一個addin,很不湊巧,這個addin的安裝方式也是拷到%Documents%\Visual Studio 2005\Addins,並且addin檔案和你的同名(或者其他的檔案和你的同名),於是,電話又來了……
    顯然這個太累了,有沒有好的方案呢?
    肯定是有的,在道出解決方案之前,我們要先看看我們的Addin的目標——IDE(這裡就是VS2005啦),開啟【工具】(Tools)菜單,這裡可以開啟【選項頁】(Option),在【環境】(Enviroment)節點下有個【外掛程式/宏安全】,然後就可以看到裡面列出了很多的目錄,

查了下文檔,MS說IDE會按照這裡的目錄搜尋外掛程式和宏;哈哈,這就好辦了,如果我們把發布的所有檔案放到某個目錄,然後把這個目錄註冊到IDE的搜尋目錄下去。
    那麼,要怎麼註冊呢?MS把這些目錄儲存在註冊表裡.

    這裡列出了一些常用版本對應的註冊表目錄:
    VS2005,x86:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\ 8.0\AutomationOptions\LookInFolders
    VS2005,x64:HKEY_LOCAL_MACHINE\SOFTWARE\ Wow6432Node\Microsoft\VisualStudio\ 8.0\AutomationOptions\LookInFolders
 
    VS2008,x86: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\ 9.0\AutomationOptions\LookInFolders
    VS2008,x64: HKEY_LOCAL_MACHINE\SOFTWARE\ Wow6432Node\Microsoft\VisualStudio\ 9.0\AutomationOptions\LookInFolders

PS:如可使Addin支援多個Host(同時支援VS2005和VS2008)?
我們只需要增加HostApplication節點就可以支援對應的IDE了,如下addin支援了VS2005和VS2008: 1<?xml version="1.0" encoding="utf-8" standalone="no"?>
 2<Extensibility xmlns="http://schemas.microsoft.com/AutomationExtensibility">
 3  <HostApplication>
 4    <Name>Microsoft Visual Studio Macros</Name>
 5    <Version>9.0</Version>
 6  </HostApplication>
 7  <HostApplication>
 8    <Name>Microsoft Visual Studio</Name>
 9    <Version>9.0</Version>
10  </HostApplication>
11  <HostApplication>
12    <Name>Microsoft Visual Studio Macros</Name>
13    <Version>8.0</Version>
14  </HostApplication>
15  <HostApplication>
16    <Name>Microsoft Visual Studio</Name>
17    <Version>8.0</Version>
18  </HostApplication>
19    <Addin>
20    <FriendlyName>MyAddIn1</FriendlyName>
21    <Description>Description>
22    <AboutBoxDetails></AboutBoxDetails>
23    <AboutIconData></AboutIconData>
24        <Assembly>MyAddIn1.dll</Assembly>
25        <FullClassName>MyAddin1.Connect</FullClassName>
26        <LoadBehavior>1</LoadBehavior>
27        <CommandPreload>1</CommandPreload>
28        <CommandLineSafe>0</CommandLineSafe>
29    </Addin>
30</Extensibility>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.