2011-09-06 126 views
1

我有一個C#應用程序引用「Microsoft MapPoint 18.0對象庫(北美)」ActiveX控件庫 - 我在項目的「參考」下添加了這個。正確鏈接到MapPoint DLL

應用程序構建,我圍繞調用new MapPoint.Application()調用try/catch,以便能夠檢測MapPoint是否已安裝,並在應用程序的該部分不可用時顯示錯誤消息 - 即,我的應用程序不需要MapPoint,如果MapPoint可用,它只是有一些額外的功能。

問題是,我現在對MapPoint二進制文件具有編譯時間依賴性 - 應用程序無法在沒有安裝MapPoint的工作站上構建。

有沒有辦法解決這個問題?

+0

這不是一個真正的問題,正如你所說的,應用程序不能沒有這些二進制文件...但建成後,你可以分發生成輸出,它應該運行。要引用這些文件並針對它們構建,顯然您需要在構建過程中使用這些引用的文件:) –

+0

無法複製這些文件的最小子集並將它們與二進制文件捆綁在一起?或者從我的工作站中提取什麼方法來構建?所有它應該需要構建的是鏈接到DLL所需的任何東西,對吧? (我試圖從MapPoint安裝文件夾中複製TLB文件,但這似乎還不夠...) –

+0

當然有一種方法,在Visual Studio的引用節點中有一些條目,選擇那些,右鍵單擊,屬性,並將本地複製設置爲true。生成後,這些文件位於構建輸出文件夾中,並將它們複製到源代碼樹的子文件夾中,然後刪除舊引用並從中引用文件,檢查源代碼管理中的所有內容,現在誰執行退出的人也有文件與來源,並可以建立。 –

回答

2

當你添加引用到你的項目時,VS應該爲你創建一個互操作文件。這是您編譯所需的全部內容,因此您可以將它放在共享位置或SCM工具中。

+0

我只是想通了 - 它的工作原理!謝謝! –