2012-07-11 84 views
0

我瀏覽過StackOverflow,但找不到任何實際的解決方案,似乎有這樣一個簡單的解決方案:我有一堆在VS2005中開發的.Net項目或VS2008,我將它們導入VS2010。其中之一是一個C++項目,目前的目標是框架4.0(不是我自己選擇的)。我們的一位客戶在運行此應用程序時遇到問題,缺少MSVCP100D.dll。我檢查了這個線程what is MSVCP100D.dll?和最被接受的答案很簡單:讓客戶端安裝Microsoft Visual C++ 2010 Redistributable Package。但是,客戶端固執地不去安裝它,我知道他們安裝了Microsoft Visual C++ 2008 Redistributable。所以,如果我的結論是正確的,並且MSVCP100D.dll是VS2010的新成員,那麼我可以只針對以前的框架版本,在VS2010中重建項目,我很樂意。問題是:我怎樣才能獲得VC++目標框架?我可以找到幾條改變C#和VB項目的指南,但沒有一條關於VC++。任何指針?降低Visual C++ 2010框架目標

編輯:對於那些建議我在發佈模式下編譯它的人:我是!有人指出,「D」代表調試,這很奇怪。

+0

你確實看到這是該庫的調試版本(**不能** [合法]重新分配)? – 2012-07-11 19:40:34

+0

你有沒有試過在* release *模式下編譯你的程序? MSVCP100D.DLL是運行時庫的* debug *版本。這在您所連接問題的接受答案中有解釋。 – 2012-07-11 19:40:56

+0

好吧,我改變了平臺工具集,確保我在發佈模式下進行編譯(雖然我很確定之前)並將它發送出去(當你在你的機器中安裝了所有東西時,測試缺乏依賴關係還是挺有用的)。我會盡快回復支持部門的反饋 – makoshichi 2012-07-11 20:02:23

回答

1

實際上,您正在使用運行時的調試版本(即「D」)。你嘗試編譯一個非調試版本嗎?

另一種考慮的可能是靜態鏈接到運行時庫。你的程序會更大,但不會有DLL依賴。

+0

感謝您提供有關「D」的信息,儘管我很確定我將它編譯爲發佈模式。另外,靜態鏈接.dll並不是很重要,因爲它可能會導致某種「鏈式依賴性反應」^^ – makoshichi 2012-07-11 20:04:04