我在64位Windows 7计算机上使用Visual Studio 2010
在Visual Studio中,我正在创建一个.NET 4 Visual C#ASP.NET空Web应用程序
我将一个Default.aspx文件添加到项目中,文本为#34; Hello World"。
如果我选择Debug - >开始调试它会打开一个Web浏览器并正确显示文本。
但是,如果我进入属性 - >构建 - >平台目标并将其更改为x64。
当我选择Debug - >开始调试它会打开一个Web浏览器,并显示以下错误消息:
"无法加载文件或程序集' WebApplication'或其中一个依赖项。尝试加载格式不正确的程序。"
"异常详细信息:System.BadImageFormatException:无法加载文件或程序集' WebApplication'或其中一个依赖项。尝试加载格式不正确的程序。"
但是,我可以将它部署到应用程序池上的单独的64位Windows 2008 r2 IIS服务器上,使用"启用32位应用程序"设置为False,即使我将64位.dll添加到项目中,应用程序也能正常运行。
是否无法使用内置的Visual Studio开发服务器在Visual Studio中调试64位应用程序?
在Debug下拉列表旁边的工具栏中,我只有一个选项"任何CPU":
对此的任何帮助将不胜感激。
答案 0 :(得分:7)
它与在32位应用程序中调试64位dll有关(用于调试的IIS的dev版本是32位)。您必须在本地以32位模式进行调试,然后在部署时以64位为目标。
此问题讨论了Visual Studio 2010 Is Visual Studio 2010 WebDev WebServer (Cassini) 64-bit compatible?中使用的WebDev服务器的64位替换。
对64位Web应用程序How to: Debug 64-Bit Applications使用远程调试并不容易。
您可以尝试的另一件事是安装IIS Express。它将以64位模式运行,可用于调试目的。链接的文章实际上是针对VS2013的,但是将注册表路径从12.0更改为10.0以使其与VS2010一起使用。
对于VS2013:Debugging VS2013 Websites Using 64-bit IIS Express
命令行:
reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\WebProjects /v Use64BitIISExpress /t REG_DWORD /d 1
对于VS2012:Allow for IIS Express 64 bit to run from Visual Studio 2012
您可以通过设置以下注册表项来配置Visual Studio 2012以使用IIS Express 64位:
reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\WebProjects /v Use64BitIISExpress /t REG_DWORD /d 1