2010-12-01 55 views
7

我有一個Windows Forms應用程序,並且正在通過ClickOnce部署部署該應用程序。現在,我有一個第三方DLL文件,它有32位和64位操作系統的不同版本。使用ClickOnce部署識別目標機器(32位或64位)

是否可以通過ClickOnce部署基於目標機器(32位或64位)的不同DLL文件?

+0

兩個不同的dll版本有相同的文件名嗎? – codeConcussion 2010-12-01 14:39:26

+0

@whatknott:是的,這兩個dll具有相同的名稱,甚至是版本號。唯一的區別是大小。 – JPReddy 2010-12-02 05:09:47

回答

3

[編輯]

這是沒有必要使用反射。您可以直接在加載程序中添加對程序的引用,並將其啓動。在Tech and Me上發佈了一篇關於此代碼的博客文章。


您可以在您的部署中包括這兩個版本,但以不同的名稱命名。然後有一個加載器應用程序檢查,如果你在一個32位或64位系統,複製你真正的程序鏈接到正確的DLL(例如thirdparty64.dll - > thirdparty.dll),然後從加載程序調用您的程序,例如 Assembly.Load並使用反射來啓動您的主要方法。

更簡單的方法是將應用程序編譯爲x86,確保它始終以32位模式運行。如果您不依賴32/64位版本的機器上安裝的特定應用程序,這可能是最佳選擇。

相關問題