Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 更改为x64平台时无法加载程序集错误_C#_Asp.net_Debugging_Dll_Configuration - Fatal编程技术网

C# 更改为x64平台时无法加载程序集错误

C# 更改为x64平台时无法加载程序集错误,c#,asp.net,debugging,dll,configuration,C#,Asp.net,Debugging,Dll,Configuration,我刚刚创建了一个新的asp.net 3.5 web应用程序。我转到应用程序属性并将平台目标更改为x64。我没有写任何代码,也没有做任何更改。接下来,我在VisualStudio中启动调试。发生以下错误: 无法加载文件或程序集 解决方案名称,版本=1.0.0.0, 区域性=中性,PublicKeyToken=空' 或者它的一个依赖项。企图 使其加载带有 格式不正确 有人知道如何解决这个问题吗? 谢谢 编辑: 我有以下警告: 警告1程序集生成- 引用程序集 'System.EnterpriseSer

我刚刚创建了一个新的asp.net 3.5 web应用程序。我转到应用程序属性并将平台目标更改为x64。我没有写任何代码,也没有做任何更改。接下来,我在VisualStudio中启动调试。发生以下错误:

无法加载文件或程序集 解决方案名称,版本=1.0.0.0, 区域性=中性,PublicKeyToken=空' 或者它的一个依赖项。企图 使其加载带有 格式不正确

有人知道如何解决这个问题吗? 谢谢

编辑: 我有以下警告:

警告1程序集生成- 引用程序集 'System.EnterpriseServices.dll' 针对不同的处理器 警告2程序集生成- 引用的程序集“mscorlib.dll” 针对不同的处理器 警告3程序集生成- 引用的程序集“System.Web.dll” 针对不同的处理器 警告4程序集生成- 引用的程序集“System.Data.dll” 针对不同的处理器

配置管理器:


它可能是一个被引用的32位dll


如果您正在IIS上调试,请打开应用程序池的高级设置,并确保启用了“启用32位应用程序”。这已经对问题进行了多次排序。

除了@winSharp93所说的内容外,请查看应用程序池高级设置,并确保将“启用32位应用程序”设置为false。

确保您编译的所有DLL都是针对“任何cpu”或针对“x64”编译的。您可以在每个项目的“项目设置”窗口中找到它。

请检查解决方案中的引用。这可能指向旧DLL。

我发现了问题

VisualStudio和Cassini似乎作为32位应用程序运行。如果我尝试使用Microsoft的Cassini托管我的64位ASP.NET应用程序,我将遇到一个异常


因此,我在IIS上部署了我的解决方案,将其更改为64位,并对其进行了调试。如果您仅使用F5或“开始”按钮启动应用程序,并在IIS上进行调试,则可能是这样的:


调试->选项->项目和解决方案->Web项目。然后选择将64位版本的IIS Express用于网站和项目。

我正在调试VS F5。我已经更新了问题。你知道这些警告吗?@Moussa-如果你右键单击解决方案并单击Configuration Manager-你的所有项目都引用相同的CPU类型和体系结构吗?@WraithNath-我只有一个项目。这是一个新的asp.net web应用程序。@Moussa-您从哪里引用了系统组件?我没有看到它抱怨64位的系统组件before@WraithNath-我没有改变解决方案中的任何内容。这是一个新的应用程序。我没有编写任何代码或添加程序集。我刚换了平台,按了F5。我正在调试VS中的F5。我已经更新了问题。知道这些警告吗?这个设置在哪里?应用程序池高级设置?我只有一个asp.net应用程序。是的-所以请查看它的项目编译设置,并确保它显示“任意cpu”:我假设我的问题是相同的,尽管它在IISEXPRESS上。我把CPY换成了任何一个CPU,它就可以工作了。这应该是可以的,因为目标平台总是会选择最好的选项,因此x64将作为x64运行;x86作为x86等等。干杯。这对我有用,谢谢。但我想知道,为什么微软没有足够的智能,不能根据projI协议生成64位版本的IIS,而不是32位版本。我花了半天的时间才弄明白,我想这是我找不到的更深层次的解释。