VS 2013 设计器 - "尝试加载具有不正确格式的程序"

5

我的解决方案包含一个定义控件的项目和另一个在表单上使用该控件的项目。当我尝试在VS设计器中打开此表单时,会出现以下错误:

 Could not load file or assembly 'libX, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format. 

其中libX既不是控制项目也不是表单项目。 当我尝试构建解决方案时,一切都很好。 运行显示表单的应用程序时,一切都很好。 似乎是设计师不喜欢某些东西。

到目前为止,我尝试过以下事项:

  • 在搜索引擎中搜索问题后,我已经尝试了常见的解决方法。 即我的解决方案配置在“配置管理器”中是正确的,并且该项目未使用任何IIS内容(因此无法应用启用32位的解决方案)
  • 在另一个版本的VS 2013(12.0.21005.1 REL)上尝试打开工作中的表单,没有任何问题。
  • 我正在使用VS 2013更新5。 由于有时设计师可以正常工作,因此我尝试降级到Update 2-没有帮助。
  • 我尝试了修复我的VS-没有帮助。

编辑: 可在此处找到演示问题的最小项目。 有问题的表单位于+ lib.trading \ lib.trading.obj.forms.strategyParametersForm项目中。

在VS Designer中打开表单时收到的错误如下: enter image description here

任何帮助都将不胜感激, 丹尼尔


libX是由控制项目或表单项目使用的项目吗?libX只支持64位吗?如果是这样,我怀疑是因为VS仍然尝试以32位模式运行代码,因为它需要在显示设计器的同时运行一些用户代码。 - Jon Skeet
@JonSkeet:感谢您的回复。是的,libX是由控制项目引用的项目,因此也会被表单项目间接引用。当前设置为所有项目都编译为x86,但问题仍然存在。 - Daniel Bencik
2
无法在我的VS 2013中重现您的问题,表单可以正常打开。这可能是由于您机器上安装了第三方VS插件所致。(VS是一个超级敌对的环境/IDE,每个有缺陷的dll都可能导致奇怪的错误...)。我建议您进一步使用fuslogvw https://msdn.microsoft.com/en-us/library/e74a18c4.aspx进行调查或使用命令行重置您的VS设置:https://msdn.microsoft.com/en-us/library/ms229859.aspx - Simon Mourier
1
我无法在VS 2013和2015中重现该问题。 我过去也遇到过类似的问题,与使用的Excel Interop DLL有关,它是64位的,但应用程序是x86。 我不知道您的库中如何使用Excel Interop,但也许这会有所帮助。 - Ozan Gunceler
1
我也无法重现这个问题。我没有看到libX项目,所以我认为你出于隐私原因而隐瞒了它。有几件事情可以尝试。清理解决方案。重新构建并打开表单。它能工作吗?切换到AnyCPU,清理解决方案,编译并再次尝试打开表单。它能工作吗?检查每个项目中所针对的.NET版本。有可能你正在使用不同的版本。 - JuanR
显示剩余11条评论
1个回答

0

尝试加载一个格式不正确的程序。如果在64位操作系统上运行具有TargetCPU =“Any CPU”的Visual Studio安装的应用程序,可能会出现错误消息“尝试加载一个格式不正确的程序。(HRESULT: 0x8007000B异常)”。


谢谢,但无论是AnyCpu、x86还是x64,错误都会出现。 - Daniel Bencik
没有特定的错误代码,只有当我尝试运行设计师时出现异常。我编辑了问题,其中包括异常消息框。 - Daniel Bencik

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接