2010-06-26 44 views
1

我正在使用需要Microsoft基礎類和XML解析器庫的Active-X控制的新產品:分發mfc42.dll - 是否仍然有必要?

MFC42.DLL(6.00.8447.0) MSVCRT.DLL(6.00.8397.0) MSXML3.DLL(8.00.7820.0) MSXML3A.DLL(8.00.7820.0) MSXML3R.DLL(8.00.7820.0)

因爲我的產品是僅適用於Windows XP和更新的,我在想,如果有必要包括這些文件在我的安裝程序中。他們是不是預裝新版Windows?如果不是,那麼您是隻重新分配這5個文件還是讓用戶下載vcredist_x86.exe軟件包?

此外,ActiveX控件的指南說,將文件安裝在Windows系統文件夾中。我討厭那個。不應該把它們安裝到我自己的文件夾中嗎?我會假設Windows會首先搜索本地路徑的文件?

回答

0

我沒有編寫ActiveX控件的經驗,但對於正常的可執行文件,只要您使用VS2005之前的Visual Studio版本,DLL就可以放在與可執行文件相同的文件夾中。

從VS2005開始,運行時DLL(C/C++運行時,MFC,ATL)必須使用安裝在一起的安裝程序安裝在Windows並行緩存(C:\ Windows \ WinSxS)中與Visual Studio。 也有可能使用私人組裝。這意味着您不要將DLL安裝在並行緩存中,但必須將它們安裝在安裝可執行文件的文件夾的子文件夾中。

最後,你也可以選擇靜態鏈接到MFC。那麼就不再需要分發或安裝MFC DLL了。

編輯:請參閱http://msdn.microsoft.com/en-us/library/aa376307%28VS.85%29.aspx關於全球/公共和每個應用程序/私人程序集的解釋。您可能想要調查每個應用程序的程序集。