使用inno setup卸载visual studio扩展

时间:2015-06-15 16:21:41

标签: visual-studio inno-setup visual-studio-extensions

我正在使用inno设置来安装我的论坛创建的visual studio扩展。它安装得很好,但我无法通过inno设置卸载它。就像现在一样,用户必须通过Visual Studios手动卸载它。这是应该安装和卸载vsix文件的代码:

[Files]
Source: "MyExtension.vsix"; DestDir: "{app}"; AfterInstall:installVsix; Flags: ignoreversion recursesubdirs createallsubdirs

[UninstallRun]
Filename:"MyExtension.vsix"; WorkingDir: "{app}"; Parameters:"/q /a /u""{code:uninstallVsix}"; Flags: shellexec runascurrentuser

[Code]
procedure installVsix();

var 
  ErrorCode: Integer;

begin
    if not ShellExec('', ExpandConstant('{app}\MyExtension.vsix'), '/q /a /i', '', SW_SHOW, ewNoWait, ErrorCode) then
    begin
    // handle failure if necessary
    end;
end;


function uninstallVsix(parameters:String): String;

var 
  ErrorCode: Integer;

begin
    ShellExec('', ExpandConstant('{app}\MyExtension.vsix'), parameters, '', SW_SHOW, ewNoWait, ErrorCode)
    Result:=''
end;

现在我在卸载程序时遇到以下错误: vsix文件的路径' path.vsix'无效或您没有所需的访问权限。请检查路径是否有效,并且您具有所需的访问权限。

我知道在卸载之前路径是有效的。我不确定问题是在VsixInstaller能够运行之前是否正在卸载文件,如果这是问题那么我就不会这样做。我知道如何解决它。

我对Inno Setup真的很陌生,我真的不知道怎么做。

1 个答案:

答案 0 :(得分:1)

.Vsix是安装程序,因此您使用InnoSetup安装程序来安装安装程序,这很奇怪。

.Vsix文件与.vsix安装工具相关联,名为VSIXInstaller.exe(在文件夹C:\ Program Files(x86)\ Microsoft Visual Studio< version> \ Common7 \ IDE中)。安装后,扩展名内部 .vsix将被VS复制到随机文件夹中(在文件夹C:\ Users \< user> \ AppData \ Local \ Microsoft \ VisualStudio \< version> \扩展)以避免与其他扩展冲突。请注意,一旦安装了扩展,就可以删除其.vsix安装程序文件!

要卸载基于.vsix的扩展,请使用带有/ u标志的vsix安装工具(还有其他标志用于安静等)和扩展的标识符:

VSIXInstaller.exe / u:{VSIXIdentifier}