在vsix安装期间添加注册表项

时间:2015-10-27 10:01:01

标签: vsix visual-studio-sdk vsixmanifest

有没有办法在从vsix安装时动态添加注册表项?

例如:

假设我们有SomeExtension.vsix。 它应检查

下的AnExisting.dll
C:\Program Files (x86)\Existing\AnExisting.dll
C:\Program Files (x86)\Existing2\AnExisting.dll

说它在Existing文件夹下找到 然后添加

[HKEY_CURRENT_USER\Software]
"C:\Program Files (x86)\Existing"=""

我知道pkgdef,但它似乎采用了一个恒定值,即我们无法在它正在安装的机器上动态更改它。

或者是否可以在正在安装的计算机上获取环境变量,并说我们相应地设置PRODUCT_HOME以便将vsix的值添加到注册表中?

1 个答案:

答案 0 :(得分:0)

这是我们可以做到的最简单的方法,虽然我不知道它可以有什么副作用。以下是批处理文件片段:

rem generate a pkgdef with the appropriate value
echo [HKEY_CURRENT_USER\Software] > MyBindingPaths.pkgdef
echo "%PRODUCT_HOME%"="" >> MyBindingPaths.pkgdef

rem *** Copy to VS extensions folder, this is a known location to look for pkgdef files ***
copy MyBindingPaths.pkgdef "%DEVENVDIR%Extensions"

echo *** Installing our VSIX ***
"%DevEnvDir%\vsixinstaller" -q SomeExtension.vsix

欢迎其他更好的建议。