2017-08-02 71 views
0

我有一個巨大的項目,包括C#& C++和許多.dll's。
在我的電腦上,一切運行良好。
但 - 當我複製整個「調試」文件夾(與所有用戶需要的DLL和配置文件)到一個新的格式化的計算機 - 我無法運行在「新」電腦上安裝一個調試編譯的pgm

我在新計算機上安裝:
.NET 4.7框架
的Visual C++再分配的(2015年,2017年.. 86 64 ..一切我認爲)
,但它並沒有幫助

後,我安裝Visual Studio Build-Tools雖然,它工作得很好
問題是,這是一個非常大的安裝(4GB +/-),我不希望安裝在我的costumers電腦(現在我們是在測試階段,沒有release編譯呢。)

我寫了一在該項目的所有dll上運行dumpbin的小程序,在文件系統中獲取它們的依賴關係並搜索它們。 我發現我錯過了一些DLL的在我的系統,如(調試):
MSVCP140D.DLL

VCRUNTIME140D.DLL

UCRTBASED.DLL

如果是我應該做的爲了能夠在裸機上運行這個pgm,或者我如何設法安裝這些缺少的dll?

+0

對安裝構建工具您試圖構建發佈版,並複製'release'文件夾而不是'debug'的內容? – Jonas

+0

是的。但是在爲'release'構建之後,它甚至沒有在我的電腦上運行。b/c有些組件還沒有準備好。 因此,必須在'DEBUG' – RedHat

回答

1

是的。如果未安裝構建工具,則無法在目標計算機上運行調試應用程序。問題是C++重新分發DLL的調試版本不是正常重新分發包的一部分。

您可以找到屬於C++重新分發包here的DLL的列表。如果您不想安裝構建工具,唯一的選擇是手動將這三個DLL複製到目標計算機。

如果您構建具有發佈目標的應用程序,將使用DLL的發佈版本。他們得到了相同的名字,沒有D後綴。這些DLL是Visual C++ Redistributable for Visual Studio 2015的一部分。

那麼你的選擇是:

  1. 複製DLL文件到新的系統
  2. 新系統
  3. 用途的樓宇時公佈目標應用程序
+0

謝謝你的回答,儘管它非常令人失望......我已經試着應對這3個DLL到'c:\ windows \ system32',但它沒有幫助。現在我會嘗試複製到'c:\ Windows \ SysWOW64'以及希望有不同的結果.... **是每個文件夾的DLL不同?或者我可以複製同一個文件嗎?** – RedHat

+0

您是否嘗試將它們放在應用程序所在的目錄中?通常這是有效的。 – Nitram

+0

是的。它沒有工作。 – RedHat

相關問題