我使用inno setup來安裝我的小組創建的visual studio擴展。它安裝得很好,但我無法通過inno安裝程序卸載它。就像現在一樣,用戶必須通過Visual Studios手動卸載它。這是應該安裝和卸載VSIX文件中的代碼:使用inno setup卸載visual studio擴展
[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}「'字符串(因爲它寫得不好,你應該從'代碼]'或從[UninstallRun]',而不是兩者),如果你缺少權限,我會嘗試刪除'runascurrentuser'標誌。所以它會變成只是'文件名:「{app} \ MyExtension.vsix」;參數:「/ q/a/u」;標誌:shellexec'。但是,這只是一個瘋狂的猜測:-) – TLama