2011-03-23 50 views
4

我是在一个安装项目寻找替代的卸载(在阅读this),并尝试以下,这黯然失败:变量在快捷参数忽略Visual Studio安装项目

我做了一个设定项目在C#中的虚拟应用程序。我说从它的构建输出以及与此内部的Uninstall.bat文件:

echo %1 
msiexec /x %1 

我然后在快捷方式的参数字段添加的快捷方式文件,[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. [Product Name] Constant [Product Code] - >仅限于常量被传递到批料作为%1,不%2
  6. [Product Name] Constant [Product Code] [UndeclaredVariable123] - >常仅被传递到批料作为%1
  7. $[Product Code] - >$仅被传递到批料作为%1

的第五实施例表明,变量是不知何故,如果常数碰撞到位置1.

+0

为了更好地知道发生了什么,想法设法:(1)在参数字段中,恒定的参数,常量参数和变量,变量以外[产品代码]。 (2)查看其余的快捷参数,Target等。 – 2011-03-23 07:44:54

+0

也许你有一些缺少的引号。包含空格的路径需要用引号括起来。 – 2011-03-23 11:18:08

+0

@CosminPrivu这里没有路径。 [产品代码]产生一个没有空格的字符串。 – MPelletier 2011-03-23 11:31:03

回答

3

首先为什么你要添加$?

参数用方括号定义。

套装[产品代码]或[PRODUCTCODE]

它应该工作,所有VS参数都是一个字,他们没有空格的,没有$符号。

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

+0

$只是最后一次测试。看看其他数字。方括号只能*工作,但不要。 – MPelletier 2011-04-23 13:04:40

+0

虽然空间...要去尝试无空间。 – MPelletier 2011-04-23 13:05:38

+2

这是间距,'[ProductCode]'起作用。谢谢。 – MPelletier 2011-04-23 14:21:43

相关问题