2010-09-01 121 views
0

我需要將我的程序靜態發佈給我的教授,但是每當我編譯該程序,然後在另一臺計算機上運行它時,它告訴我找不到dll顯然我做錯了什麼。我需要做什麼來建立一個靜態構建?如何在Visual Studio 2010中構建靜態鏈接的程序?

+0

語言?如果它是一個.NET應用程序,則不能使用ILMerge等靜態鏈接。 – Josh 2010-09-01 05:18:13

+0

當然,如果不在目標計算機上安裝.Net Framework,它仍然無法運行。 – treaschf 2010-09-01 05:26:56

+0

哪個DLL丟失? – jdehaan 2010-09-01 05:48:55

回答

0

將項目設置更改爲靜態版本後,選擇「全部生成」(或「全部重建」)。如果這不起作用,請選擇「刪除所有中間文件」並構建。

0

問題加載.dll文件通常依賴幹從一兩個問題:

  • 組件在GAC中失蹤。
  • 應用程序目錄中缺少組件。

在這種情況下,我敢打賭,你可以解決以下通過確保問題:

  • 提供給您的教授認爲,複製到您的輸出文件夾作爲一個包中的所有組件。
  • 確保您的教授安裝了正確的依賴關係。例如,如果您的應用程序是.NET,請確保您的教授安裝了正確的.NET框架(如果是這種情況,可能是.NET 4)。
0

如果您正在編譯C/C++程序,請查看編譯器安裝目錄中的vcredist exe可執行文件。此可再發行版包含運行您的應用程序所需的side-by-side assemblies。它是特定於您正在使用的編譯器的版本。當您進行設置或部署時,您必須將其安裝在目標計算機上。另外不要忘記編譯一個「發佈」。沒有在那裏安裝調試DLL的情況下,「調試」將不會在其他機器上運行,這不是vcredist的一部分。

這是microsoft網站上的vcredist的鏈接。您必須採用與您使用的編譯器完全匹配的那一個。更好的辦法是從編譯器的安裝目錄中找到它,以確保它匹配。

相關問題