【问题标题】:Uninstall a visual studio extension using inno setup使用 inno setup 卸载 Visual Studio 扩展
【发布时间】:2015-08-31 05:49:38
【问题描述】:

我正在使用 inno setup 来安装我的小组创建的 Visual Studio 扩展。它安装得很好,但我无法通过 inno setup 卸载它。就像现在一样,用户必须通过 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 的新手,我真的不知道该怎么做。

【问题讨论】:

  • 我从来没有处理过这些扩展,所以我只能查看 [UninstallRun] 这样的条目。我会设置Filename: "{app}\MyExtension.vsix",删除WorkingDir,去掉"{code:uninstallVsix}" 字符串(因为它写得不好,你应该从[Code] 或[UninstallRun] 执行,而不是两者都执行),如果你错过了权限我会尝试删除runascurrentuser 标志。所以它会变成Filename: "{app}\MyExtension.vsix"; Parameters: "/q /a /u"; Flags: shellexec。但是,这只是一个疯狂的猜测:-)

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


【解决方案1】:

.Vsix 是安装程序,所以你使用的是 InnoSetup 安装程序来安装安装程序,这很奇怪。

.Vsix 文件与名为 VSIXInstaller.exe 的 .vsix 安装工具相关联(位于文件夹 C:\Program Files (x86)\Microsoft Visual Studio \Common7\IDE 中)。安装后,.vsix 的扩展 inside 会被 VS 复制到一个随机文件夹(在文件夹 C:\Users\\AppData\Local\Microsoft\VisualStudio\\Extensions 中)避免与其他扩展发生冲突。请注意,一旦安装了扩展,它的 .vsix 安装程序文件可能会被删除!

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

VSIXInstaller.exe /u:{VSIXIdentifier}

【讨论】:

    猜你喜欢
    • 2018-05-04
    • 2013-03-28
    • 2017-08-15
    • 2011-12-06
    • 2012-11-16
    • 2014-07-30
    • 2014-10-03
    • 2011-10-02
    • 2016-01-14
    相关资源
    最近更新 更多