2012-01-26 307 views
1

我正在開發一個使用VSIX的Visual Studio擴展項目。默認情況下,VSIX文件將在以下文件夾中的一個安裝組件:如何更改vsix的默認安裝位置

C:\Users\<UserName>\Appdata\Local\Microsoft\VisualStudio\10.0Exp\Extensions\Microsoft\<GPName> 
C:\Users\<UserName>\AppData\Local\Microsoft\VisualStudio\10.0\Extensions\Microsoft p&p\<GPName> 

是否可以改變輸出的位置?

+4

我討厭成爲那些人之一(只是在開玩笑,不,我不),但你爲什麼要改變位置? –

+0

我需要使用反射來加載我的程序集,因爲程序集程序集必須是強簽名的,我不能引用未簽名爲引用的程序集。因此,當包自動部署時,不會部署引用程序集(反映)和配置文件。 –

+1

那麼爲什麼不簽名呢?或者將你的依賴關係部署到同一個目錄中?這是本地用戶文件夾,所以您應該始終有足夠的權限來寫入。 –

回答

0

不,這是不可能的。該VSIX安裝程序選擇放置你的組件和VSIX沒有輸入到這個過程中

5

你總是可以輕鬆地找到自己的組件:

  • 你瞬間被typeof(MyPackage).Assembly.Location得到正確的路徑和計算路徑等在您的軟件包中捆綁的程序集。但是,我認爲這不會工作,如果該包已註冊到GAC
  • 您可以使用myPackage.UserLocalDataPath VS將返回正確的(blah)/ Extensions目錄,位於(youruser) - (appdatalocal)文件夾中的某處,然後您可以更深入地掃描您的文件夾和其他包的文件夾

聽起來像很多工作 - 但它不是;幾行,最多x-teen。