有没有办法在从vsix安装时动态添加注册表项?
例如:
假设我们有SomeExtension.vsix。 它应检查
下的AnExisting.dllC:\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的值添加到注册表中?
答案 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
欢迎其他更好的建议。