0

从 vsix 安装时有什么方法可以动态添加注册表项?

例如:

假设我们有 SomeExtension.vsix。它应该检查 AnExisting.dll 下

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

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

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

我知道 pkgdef,但它似乎是一个常数值,即我们不能让它在它正在安装的机器上动态改变。

或者是否可以在正在安装的机器上获取一个环境变量,比如我们为 vsix 设置了 PRODUCT_HOME 以将值添加到注册表?

4

1 回答 1

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

欢迎其他更好的建议。

于 2015-11-02T15:32:12.740 回答