我已經用Visual Studio創建了安裝項目。我還需要一些自定義操作 - 使用Visual C++創建DLL,它工作得很好,但我不想將Visual C++運行時文件包含到我的項目中。 那麼是否有可能與其他一些C++編譯器一起構建這個dll?執行自定義操作DLL-S的MSI安裝程序必須與僅Visual Studio創建?
我曾試圖彌補與開發 - C + +,但讓它在編譯時,我得到幾百編譯錯誤從文件中msi.h和msiquery.h
我已經用Visual Studio創建了安裝項目。我還需要一些自定義操作 - 使用Visual C++創建DLL,它工作得很好,但我不想將Visual C++運行時文件包含到我的項目中。 那麼是否有可能與其他一些C++編譯器一起構建這個dll?執行自定義操作DLL-S的MSI安裝程序必須與僅Visual Studio創建?
我曾試圖彌補與開發 - C + +,但讓它在編譯時,我得到幾百編譯錯誤從文件中msi.h和msiquery.h
也許最簡單的解決辦法是你的DLL針對靜態運行時鏈接庫。
一般的自定義操作的DLL應該只依賴於已經在安裝前的系統DLL。這意味着,例如,靜態鏈接CRT,如MSalters所述,但也適用於對第三方庫的任何其他依賴。
另一種選擇是與OS CRT相連,如Koby Kahane解釋here。
我做了一個自定義的DLL我的設置項目。我的dll很簡單,註冊很少的服務,而不是CLR或任何第三方庫依賴。僅與msi.lib靜態鏈接。
我已刪除從安裝項目的.NET和Windows安裝程序的先決條件要求。我的安裝程序在沒有.net框架的macines上失敗..?
正如我已經沒有任何.NET相關的代碼,什麼應該是解決這個。我不希望用戶首先下載安裝框架。
問候 阿米特
在這裏你可以使用C++的DLL自定義操作找到一些簡單的例子:
http://www.simple-talk.com/dotnet/visual-studio/visual-studio-setup---projects-and-custom-actions/
謝謝,這解決了我的問題。 – Keios 2009-06-05 08:49:09