2010-01-28 36 views
4

我是InstallShield的新手,並且繼承了InstallScript項目。我大部分時間都在想辦法解決大部分問題。不過,我希望在構建服務器時自動在我們的產品的每個版本上構建此項目。我有這個工作正常。但出於某種原因,我無法獲得增加的版本號。從IsCmdBld.exe設置InstallShield 2009 InstallScript項目的版本

我使用命令:

IsCmdBld.exe -P <.ism location>
-L <some_path_variable>=<some_value>
-L <some_path_variable2>=<some_value2>

這工作。

然而,增加-y 1.2.3-y "1.2.3"-z Version=1.2.3-z Version="1.2.3"-z "Version=1.2.3"-z ProductVersion=1.2.3-z ProductVersion="1.2.3",或-z "ProductVersion=1.2.3".不起作用。

當我說,這是行不通的,我的意思是使用所產生的安裝程序不會嘗試做一個升級像它會如果我手動增加了產品屬性表的版本字符串從裏面的InstallShield。

有什麼我失蹤?我知道我沒有提供太多的東西,只希望以前有人遇到過這個問題。另外,使用-c COMP開關不起作用。

任何想法讚賞。

回答

7

我相信IsCmdBld只支持通過ProductVersion屬性MSI項目,但不適合的InstallScript項目。我相信你需要做這樣的事情之前,調用IsCmdBld

set project = CreateObject("ISWiAuto15.ISWiProject") 
project.OpenProject "C:\test.ism" 
project.ProductVersion = "2.0.0" 
project.CloseProject 
set project = nothing 

或者,你可以以XML格式保存您的項目類型和使用XPath/XPoke以更新PropertyProductVersion。由於DTD,語法有點嚇人,但它可以完成。

+0

是的,Acresso論壇中的某個人也將此路線發送給我。我正在做你的建議,除了在project.CloseProject之前調用project.SaveProject,並且我正在使用c#。但是,save調用會引發COMException。 = /我將最終確定導致此異常的原因。 – 2010-02-04 16:56:13

+1

檢查您是否在執行project.OpenProject「c:\ test.ism」,爲false,以便您可以修改該項目。 – Alonso 2010-02-10 06:32:11

+0

@Alonso是的,我是。問題在於原作者沒有使用IS 2009。因此,在IS 2009中打開該項目並選擇另存爲...,然後更改幾個指針即可解決問題。 – 2010-02-10 17:58:19

3

這是一個老問題,但我終於能夠找出如何使它在命令行中爲我工作,所以我想我會分享。我在項目中創建了一個路徑變量(VersionNumber,在下面的示例中),並在「常規信息」部分中將產品版本設置爲該路徑變量。

然後你可以在命令行使用-l標誌來設置它。

ISCmdBld.exe -p project.ism -l VersionNumber=1.1.0 
+0

它的工作原理,謝謝 – Jack 2017-01-17 02:16:58

相關問題