我正在寻找安装项目中卸载的替代方案(在阅读时this https://stackoverflow.com/questions/1356160/in-a-visual-studio-setup-project-how-do-i-generate-an-uninstall-script)并尝试了以下方法,遗憾的是失败了:
我用 C# 为虚拟应用程序创建了一个安装项目。我添加了其构建的输出和一个 Uninstall.bat 文件,其中包含以下内容:
echo %1
msiexec /x %1
然后我添加了该文件的快捷方式[Product Code]
在快捷方式的参数字段中:
我的理由是,Uninstall.bat 将以产品代码(已解析)作为参数进行调用。
设置完成后,没有骰子,参数不会从快捷方式传递给安装程序。命令窗口的输出是:
ECHO is on.
msiexec /x
The %1
参数似乎不存在。在二进制编辑器中查看 LNK 文件,会发现产品代码似乎存在。
这里发生了什么事?
进一步尝试各种论点和简单的回声:
-
[Product Code]
-> 忽略
-
{%hardcodedProductCode%}
-> 传递给批处理%1
-
[Product Name]
-> 忽略
-
Constant [Product Code]
-> 仅将常量传递给批处理%1
-
[Product Name] Constant [Product Code]
-> 仅将常量传递给批处理%1
, not %2
-
[Product Name] Constant [Product Code] [UndeclaredVariable123]
-> 仅将常量传递给批处理%1
-
$[Product Code]
-> $
仅传递给批处理%1
第 5 个示例表明,如果常量移至位置 1,则变量会以某种方式被忽略。
首先,为什么要添加$?
参数在方括号中定义。
设置 [产品代码] 或 [产品代码]
它应该有效,所有 vs 参数都是一个单词,它们没有空格,也没有 $ 符号。
还可以看看这里,http://www.gogototo.com/how-to-add-a-uninstall-option-in-visual-studio-setup-project-without-writing-code.html http://www.gogototo.com/how-to-add-a-uninstall-option-in-visual-studio-setup-project-without-writing-code.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)