我有2個項目在我的解決方案如何使System.Configuration.Install.Installer從安裝項目中獲取變量?
Windows服務
它的安裝項目
我需要那個叫OnAfterInstall我ProjectInstaller : System.Configuration.Install.Installer
的方法來獲得從該ProductName
安裝項目。我怎麼做?
我有2個項目在我的解決方案如何使System.Configuration.Install.Installer從安裝項目中獲取變量?
Windows服務
它的安裝項目
我需要那個叫OnAfterInstall我ProjectInstaller : System.Configuration.Install.Installer
的方法來獲得從該ProductName
安裝項目。我怎麼做?
在您的安裝項目中,右鍵單擊項目,然後選擇視圖>自定義操作。添加自定義操作。現在選擇添加輸出,選擇您的Web服務項目,然後單擊確定。
現在選擇您的自定義操作,並設置CustomActionData
屬性包含類似/ProductName=[PRODUCTNAME] /whateveryouwant=[Whateveryouwant]
(注意,這些鍵值對,即訪問產品名稱,ProductName
是鍵和值是PRODUCTNAME
)。
注意CustomActionData
包含將被傳遞到您的安裝程序類的參數。 PRODUCTNAME
是與用戶界面對話框中的輸入控件關聯的屬性名稱,因此在您的情況下,您會提示用戶在yor安裝程序中輸入產品名稱。因此,標籤是「產品名稱」和相應的屬性應該設置爲PRODUCTNAME
(很明顯,你可以改變這一點,但是要注意的最重要的事情是,UI屬性名必須是相同的CustomActionData
屬性名稱)這個例子工作。現在
您的安裝類中,你可以通過做
public override void Install(IDictionary stateSaver)
{
// If you need to debug this installer class, uncomment the line below
//System.Diagnostics.Debugger.Break();
string productName = Context.Parameters["ProductName"].Trim();
string whateveryouwant = Context.Parameters["whateveryouwant"].Trim();
}
注獲得產品名稱我包括註釋代碼//System.Diagnostics.Debugger.Break();
,你可以發表評論的,這樣就可以調試安裝程序類。
希望這有助於。
優秀!謝謝! – 2010-01-15 11:15:14
我遇到了兩個問題:(1)它不工作(2)在調試時,它說:'無法計算表達式,因爲當前方法的代碼是optimized.' – 2010-01-15 15:28:23
林不知道是什麼問題,沒有看到你代碼或有更多的細節。你得到的錯誤是一個錯誤,發生在許多地區。如果你願意的話,你可以給我一個你的設置項目的修剪版本,並且看看我能否看到它有什麼問題。 – Somedeveloper 2010-01-18 17:26:28