2012-01-26 58 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。