2013-01-16 64 views
1

我做了一個包含exe和dll的安裝程序,使用Visual Studio製作的東西是我可以添加一些代碼嗎?如何添加一些代碼到C#安裝程序

安裝時的例子我只想運行3-4行代碼。

1-使用唯一密鑰獲取MAC地址添加到數據庫。

同樣在卸載時從數據庫中刪除mac地址。

在當前使用默認安裝項目的情況下,這可能嗎?

+0

哪個mac地址?機器可能有多個網絡適配器(包括真實和虛擬),並且它們都具有不同的地址。而且有可能有人可能會更換網絡適配器,因此請更改一個或多個mac地址。 –

+0

@Damien_The_Unbeliever獲取mac地址不是我主要關心的,它只是將代碼添加到安裝程序。 – confusedMind

+0

我只是想指出,如果你已經把這個問題分解成「get mac地址,然後在適當的安裝時間將它添加/刪除到數據庫中」,並且你現在專注於第2部分,您目前正在忽略這個解決方案無法正常工作的更大問題。 –

回答

2

您需要爲您的安裝程序使用CustomAction。有了這個,你可以運行一個程序,腳本,寫一個註冊表鍵,或者其他什麼。 Here's a simple example使用自定義安裝程序類,以顯示在安裝過程中的消息(在VB.NET,但容易翻譯):

Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary) 
    MyBase.Install(stateSaver) 
    Dim myInput As String = Me.Context.Parameters.Item("Message") 
    If myInput Is Nothing Then 
    myInput = "There was no message specified" 
    End If 
    MsgBox(myInput) 
End Sub 

您將需要遵循的鏈接的步驟完全再現了樣品。

+0

謝謝你完美的解決方案,滿足我的要求。 – confusedMind

+0

[更新版本](https://msdn.microsoft.com/en-us/library/9cdb5eda(v = vs.100).aspx) –

0

您可以使用.NET installer classes並從默認設置項目中對其進行連線。您重寫一些方法,然後在安裝/卸載時調用它們。以下是關於如何做到這一點的tutorial。也就是說,很多人憎恨這些.NET安裝程序類(和默認安裝項目),並使用基於WIX或InstallShield的項目實現真正的自定義操作。

根據你想要做什麼,當你想要做什麼,你也引入了.NET依賴。例如,如果您正在檢查正在安裝的.NET,如果用戶沒有安裝.NET,則無法從.NET自定義操作執行此操作。

添加自定義操作有點不切實際。一旦人們意識到您可以定製安裝程序,您可能會被要求做更多。在這一點上,使用更靈活的工具(WIX(開源)或InstallShield($))可能是有意義的。

相關問題