2008-08-29 17 views
3

如何從安裝程序中使用託管代碼(.net)編寫自定義動作dll而不使用非託管中介?託管代碼中的自定義動作dll

+1

得說我發現這是有史以來如此怪異有幫助,如果你還在尋找http://blog.torresdal.net/2008/09/03/WiXAndDTFIntroduction.aspx – Terrance 2011-01-31 23:18:04

回答

1

在.NET/Windows安裝程序中對此有支持

使用VS.NET創建程序集。 將安裝程序類添加到項目中 - 選擇「添加 - 新建項目」。選擇intaller類。 該類來自System.Configuration.Install.Installer。它有許多虛擬方法,如Install()。這將在安裝時由Windows安裝程序引擎調用。

然後可以將此程序集作爲自定義操作添加到Windows Installer項目中。用於將自定義操作聲明爲.NET安裝程序類的方法取決於您用於創建安裝的工具。

對不起,這有點簡單。

0

我希望我能知道更多關於你的具體情況,但建議一般一塊,你可能會考慮C++/CLI對於涉及非託管/管理互操作性問題:

C++: The Most Powerful Language for .NET Framework Programming

我從經驗中知道,我可以將非託管代碼「提取」到C++/CLI項目中,我可以從任何C#/ .NET /託管代碼中使用它,但聽起來您想要做相反的事情:將託管代碼提取到C++/CLI項目中,並且然後將其與一些非託管代碼關聯起來,並將其公開爲傳統的非託管DLL(或安裝程序二進制文件)。我不確定這是否可以在C++/CLI中使用。

0

Jared - 你能提供一些關於你如何完成這個的信息嗎?

塊引用

我希望我能知道更多關於你的具體情況,但建議一般一塊,你可能會考慮C++/CLI對於涉及非託管/管理互操作性問題: C++:該用於.NET Framework編程的最強大的語言 我從經驗中知道,我可以將非託管代碼「提升」到C++/CLI項目中,我可以從任何C#/ .NET /託管代碼中使用它,但聽起來像您想要執行的操作相反:將託管代碼提取到C++/CLI項目中,然後將其與一些非託管代碼關聯起來,並將其作爲傳統非託管代碼DLL(或二進制安裝程序)。我不確定這是否可以在C++/CLI中使用。

塊引用

我被困在一個問題,這個問題現在。我有一個項目,在標準的MFC VC工作,但我想把它帶入他的C++/CLI世界。我遇到的主要問題是我無法在CoCreateInstance()調用中加載接口。