2010-08-02 91 views
1

我有一個安裝程序類,我用它在應用程序初始安裝後對它進行一些處理。Asp.net Web安裝項目 - 獲取安裝程序類的選定主機名

在安裝程序中,我有一個自定義對話框,用於請求用戶名和密碼。這是在我的安裝程序類訪問與

Me.Context.Parameters("username") 

將其設置爲CustomActionData /username="[TXTUSERNAME]"

這是所有罰款後。 Web安裝項目的第一個對話框讓用戶從下拉列表中選擇一個IIS網站,並根據需要設置VirtualDirectory。我需要獲得選擇的主機名,但到目前爲止,我沒有在任何文檔中找到對它的引用。

我已經試過了諸如:

Me.Context.Parameters("targetURL") 
Me.Context.Parameters("TARGETSITE") 

但他們沒有任何輸出的..

任何想法?

+0

你的意思是你想找到一個解析爲安裝程序當前運行的機器的URL?或者您需要找到機器的名稱,以便您可以構建一個網址http:// myserver:8080/mySite/myVDir? – fletcher 2010-08-10 08:46:30

+0

在Web安裝項目的CustomActionData下,您可以在自定義安裝程序類中訪問一系列參數。例如,我有一個帶有2個文本框的自定義對話框,我使用這些來獲取用戶的用戶名和密碼。我可以使用Me.Context.Parameters(「username」)在我的安裝程序類中訪問它們。 在Web安裝項目中,將應用程序安裝到IIS網站中。因此,在您選擇的IIS網站指向(目錄明智)的地方,它會將其安裝到該路徑。我想要所選IIS網站的主機名,這樣我可以在安裝時進行一些方便的設置。 – Markive 2010-08-10 09:05:09

+0

根據文檔應該是這樣的:Me.Context.Parameters(「targetURL」)和/ targetURL =「[TARGETURL]」,但它從來沒有爲我工作.. – Markive 2010-08-10 09:06:39

回答

1

因此,它是一些proessing安裝後還是不行?你說這是你的問題(第一行),所以我們假設磁盤上有可運行的東西:-)

例如,如果你從System.Configuration.Install.Installer派生,你可以調用它post通過installutil安裝並通過任何你想要的參數 - 這意味着你在這一點上是免費的。

也檢查了這個http://www.codeproject.com/KB/install/command_lines_setups.aspx有源代碼等顯示如何將完全任意的命令行參數傳遞給MSI。它還列出了大量可用的屬性 - 至少喜歡其中一個:-)

+0

感謝大家的幫助,這是最接近答案。該鏈接看起來非常有趣.. 我的自定義安裝程序類在提交階段運行,因此在MSI完全完成之前,大部分安裝例程(如複製文件)都已完成。我認爲這只是調用安裝程序類的正常時間。 在這個階段,我一直無法從IIS網站「TARGETURL」等獲得主機名值。這給了我一個很好的鏈接繼續..不幸的是,我已經轉移到其他的東西暫時... 再次感謝! – Markive 2010-08-11 13:09:26

0

嘗試

Response.Write(HttpContext.Current.Request.ServerVariables["HTTP_HOST"] 

Response.Write(Request.Url.Host.ToString() 

我不知道這是否你正在尋找..

+0

不是這是爲我的Web應用程序的安裝程序一個web安裝項目。這個應用程序甚至沒有被安裝到IIS網站.. – Markive 2010-08-06 19:32:17

0

我創建了一個示例Web安裝項目和ORCA打開MSI編輯。

可能是「TARGETVDIR」可以是任何使用

相關問題