Visual Studio安装项目忽略快捷方式参数中的变量

时间:2011-03-23 01:28:00

标签: .net visual-studio batch-file setup-project shortcut

我在设置项目中寻找卸载的替代方法(在阅读this时)并尝试了以下操作,但遗憾的是失败了:

我在C#中为虚拟应用程序创建了一个Setup Project。我在其构建中添加了输出,并在其中添加了一个Uninstall.bat文件:

echo %1
msiexec /x %1

然后我在快捷方式的Arguments字段中添加了[Product Code]该文件的快捷方式:

Shortcut

我的理由是,将使用产品代码(已解决)作为参数调用Uninstall.bat。

设置完毕后,没有骰子,参数不会从快捷方式传递给安装程序。命令窗口的输出是:

ECHO is on.
msiexec /x

%1参数似乎不存在。在二进制编辑器中查看LNK文件,产品代码似乎存在。

这里发生了什么?

进一步尝试各种论点和简单的回声:

  1. [Product Code] - >忽略
  2. {%hardcodedProductCode%} - >传递给批处理为%1
  3. [Product Name] - >忽略
  4. Constant [Product Code] - >常量仅作为%1
  5. 传递给批处理
  6. [Product Name] Constant [Product Code] - >常量仅作为%1传递给批处理,而不是%2
  7. [Product Name] Constant [Product Code] [UndeclaredVariable123] - >常量仅作为%1
  8. 传递给批处理
  9. $[Product Code] - > $仅作为%1
  10. 传递给批处理

    第五个例子表明,如果常量碰到位置1,变量会被忽略。

1 个答案:

答案 0 :(得分:3)

首先,为什么要添加$?

参数在方括号中定义。

设置[ProductCode]或[PRODUCTCODE]

它应该工作,所有vs参数都是一个单词,它们没有空格,没有$符号。

另外看看这里, http://www.gogototo.com/how-to-add-a-uninstall-option-in-visual-studio-setup-project-without-writing-code.html