我做了一個包含exe和dll的安裝程序,使用Visual Studio製作的東西是我可以添加一些代碼嗎?如何添加一些代碼到C#安裝程序
安裝時的例子我只想運行3-4行代碼。
1-使用唯一密鑰獲取MAC地址添加到數據庫。
同樣在卸載時從數據庫中刪除mac地址。
在當前使用默認安裝項目的情況下,這可能嗎?
我做了一個包含exe和dll的安裝程序,使用Visual Studio製作的東西是我可以添加一些代碼嗎?如何添加一些代碼到C#安裝程序
安裝時的例子我只想運行3-4行代碼。
1-使用唯一密鑰獲取MAC地址添加到數據庫。
同樣在卸載時從數據庫中刪除mac地址。
在當前使用默認安裝項目的情況下,這可能嗎?
您需要爲您的安裝程序使用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
您將需要遵循的鏈接的步驟完全再現了樣品。
謝謝你完美的解決方案,滿足我的要求。 – confusedMind
[更新版本](https://msdn.microsoft.com/en-us/library/9cdb5eda(v = vs.100).aspx) –
您可以使用.NET installer classes並從默認設置項目中對其進行連線。您重寫一些方法,然後在安裝/卸載時調用它們。以下是關於如何做到這一點的tutorial。也就是說,很多人憎恨這些.NET安裝程序類(和默認安裝項目),並使用基於WIX或InstallShield的項目實現真正的自定義操作。
根據你想要做什麼,當你想要做什麼,你也引入了.NET依賴。例如,如果您正在檢查正在安裝的.NET,如果用戶沒有安裝.NET,則無法從.NET自定義操作執行此操作。
添加自定義操作有點不切實際。一旦人們意識到您可以定製安裝程序,您可能會被要求做更多。在這一點上,使用更靈活的工具(WIX(開源)或InstallShield($))可能是有意義的。
哪個mac地址?機器可能有多個網絡適配器(包括真實和虛擬),並且它們都具有不同的地址。而且有可能有人可能會更換網絡適配器,因此請更改一個或多個mac地址。 –
@Damien_The_Unbeliever獲取mac地址不是我主要關心的,它只是將代碼添加到安裝程序。 – confusedMind
我只是想指出,如果你已經把這個問題分解成「get mac地址,然後在適當的安裝時間將它添加/刪除到數據庫中」,並且你現在專注於第2部分,您目前正在忽略這個解決方案無法正常工作的更大問題。 –