我正在使用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真的很陌生,我真的不知道怎么做。
答案 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}