簡體   English   中英

使用/ MDd標志編譯時,C#應用程序找不到Dll

[英]C# app can't find Dll when compiled with /MDd flag

我有一個C#應用程序,該應用程序鏈接到一些c#DLL,這些DLL隨后使用綁定來調用其他Dll中的c ++函數。

如果我使用/ MTd編譯C ++ Dll,那么所有這些都可以正常工作,但是當我使用/ MDd時,我在C#應用程序中收到XMLParseException,抱怨它找不到任何Dll(無法找到我使用的第一個Dll) 。 我最好的猜測是,使用此其他開關會導致它更改查找其Dll的路徑,從而導致失敗。 我使用DependencyWalker進行了仔細查看,但實際上找不到的兩個Dll是“ IESHIMS.DLL”和“ WER.DLL”。 但是,我在DependecyWalker的樹的任何位置都看不到我的c#Dll。 任何人都知道這里可能有什么問題嗎?

同樣,使用非調試等效項(/ MD和/ MT)也沒有區別。 無論如何,我不能使用/ MT,因為它會導致另一個錯誤。

編輯:我已經縮小了問題范圍。 當使用VS2010命令提示符進行編譯和鏈接時,我的應用程序運行良好,而VS2008命令提示符仍然無法找到Dll。 有誰知道這兩個版本的VS之間的任何差異可能會導致上述行為?

提前致謝,

您是否在相同的運行時庫中編譯所有模塊? 來自: http : //msdn.microsoft.com/zh-cn/library/2kzt1wy3(VS.80).aspx

“傳遞給鏈接器的給定調用的所有模塊都必須使用相同的運行時庫編譯器選項(/ MD,/ MT,/ LD)進行編譯。”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM