2011-03-23 91 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

相關問題