2011-09-30 64 views
4

我正在開發一個Visual Studio 2010擴展(VSIX項目),以將實體框架設計器中的實體添加一些額外的屬性。除了爲MEF發現註冊適當的類之外,我還想在安裝擴展時將T4包含文件複製到%ProgramFiles%\ Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes文件夾中,但我不知道如何去做,並且VSIX屬性頁似乎不是爲此顯示任何選項。如何在安裝VSIX項目時將文件複製到任意位置?

所以我的問題是:有沒有什麼辦法讓一個給定的文件複製到一個給定的位置,當一個VSIX項目安裝?

回答

4

僅使用VSIX,不,沒有。

VSIX包的全部內容在安裝過程中都是簡單地解壓縮到您的本地擴展目錄 - 這就是關於文件安裝的END。

無論你想在任何地方複製,你必須在VSIX安裝程序之外處理它。例如 - 使用不同的安裝程序。或者,對於另一個例子,首次運行插件時,在package.Initialize()中的某個位置,檢查相關文件是否存在於正確的位置,如果沒有,請將它們複製到那裏。

當然,如果你想寫入ProgramFiles目錄,你面前還有另一個障礙:UAC保護。要寫在那裏,你將需要一個另一個可執行文件,你的插件將在海拔上運行(並在此期間詢問用戶的許可等),並且只有它才能夠將文件複製到那裏。當然,除非你高興地認爲每個人都以「管理員」身份運行他們的VisualStudios,並且忽略UAC和用戶的眼淚。

相關問題