我结合了被接受的答案和Locksmith的答案,以避免看到任何命令提示符的闪烁或命令提示符本身。这样做的一个优点是你不必创建快捷方式并设置其参数才能让它工作。
我的createUninstaller.js文件:
var fso, ts;
var ForWriting= 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
var parameters = Session.Property("CustomActionData").split("|");
var targetDir = parameters[0];
var productCode = parameters[1];
ts = fso.OpenTextFile(targetDir + "Uninstall.js", ForWriting, true);
ts.WriteLine("var v = new ActiveXObject(\"Shell.Application\");");
ts.WriteLine("v.ShellExecute(\"msiexec.exe\", \"/x "+productCode+"\", \"\", \"open\",10);");
ts.Close();
这个文件被添加为提交操作“directory”的自定义操作。为了实际获得这些自定义操作:
右键单击您的安装程序项目>查看>自定义操作>右键单击提交“directory”>添加自定义操作。之后,您必须搜索您创建的createUninstaller.js文件并添加它。
现在要使createUninstaller.js读取变量targetDir和productCode,您必须
右键单击设置项目自定义操作'commit'目录中的createUninstaller.js文件,然后转到属性窗口。
在属性中,您将看到“CustomActionData”属性。在那里,您只需复制粘贴[TARGETDIR] | [ProductCode]
然后就完成了!它现在应该添加Uninstall.js文件,只需双击即可运行。