在 vsix 安装期间添加注册表项
Add registry key during vsix installation
有什么方法可以在从 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 以将值添加到注册表中,是否可以在正在安装的机器上获取环境变量?
这是我们可以做到的最简单的方法,尽管我不知道它会产生什么副作用。以下是批处理文件片段:
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
欢迎其他更好的建议。
有什么方法可以在从 vsix 安装时动态添加注册表项?
例如:
假设我们有 SomeExtension.vsix。 它应该检查
下的 AnExisting.dllC:\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 以将值添加到注册表中,是否可以在正在安装的机器上获取环境变量?
这是我们可以做到的最简单的方法,尽管我不知道它会产生什么副作用。以下是批处理文件片段:
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
欢迎其他更好的建议。