修改在WIN7 64位服務調試32位DLL的方法


轉自 http://blog.sina.com.cn/s/blog_6ba6d89e01013uzz.html

 

根據微軟官方的解釋,WCF(之前的版本名為“Indigo”)是使用托管代碼建立和運行面向服務(Service Oriented)應用程序的統一框架。它使得開發者能夠建立一個跨平台的安全、可信賴、事務性的解決方案,且能與已有系統兼容協作。
雲平台框架。
上次在作業的時候遇到了一件蛋疼的事情。
根據要求,需要建立一個WCF Service Library,由於我的機器是x64,考慮到兼容性,將工程編譯屬性調整為x86。 在x64平台上調試依賴於x86的WCF服務

在x64平台上調試依賴於x86的WCF服務

然后我就歡樂的去調試了
然后...就沒有然后了...
調試項目無法運行
 System.BadImageFormatException: Could not load file or assembly 'file:///C:\Users\celeron533\Dropbox\5041\Assignment2_Project\Airline2_Server\AirLineServiceLibrary\bin\x86\Debug\AirLineServiceLibrary.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.
在x64平台上調試依賴於x86的WCF服務
究其原因,我寫的是一個dll文件,需要一個exe作為運行容器來調用,這VS2010中,這個臨時容器由 WCF Service Host 來承擔  Microsoft Visual Studio 10.0\Common7\IDE\WcfSvcHost.exe
在安裝VS的時候,安裝程序偵測到當前系統是x64,所以給WcfSvcHost.exe 設定為64位,該程序無法調用32位的dll,所以會報錯“incorrect format”
  1. 備份好原來的x64版本的WcfSvcHost.exe
  2. 打開VS命令行命令行(開始,程序,VS2010,VS工具,VS控制台)
    在x64平台上調試依賴於x86的WCF服務
  3. 通過命令切換到WcfSvcHost.exe所在文件夾
  4. 運行命令 corflags /32BIT+ /FORCE WcfSvcHost.exe
  5. 完成
可以正常運行了 在x64平台上調試依賴於x86的WCF服務

若是想切換回原來的模式,可以還原文件或者改命令參數 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM