在运行时找不到C#程序集

时间:2009-09-27 22:53:02

标签: c# assemblies xna

我的XNA项目在新电脑上发生了一个奇怪的错误。 我有两个关于解决方案的项目和一个两个都使用的库。其中一个项目,一个XNA游戏项目,完美运行。另一个项目是WindowsForm和XNA的混合体。单击按钮时,表单将启动XNA类。 当我运行该程序时,它很有效,直到我点击启动XNA类的按钮。在构造函数将被执行的时刻,就会触发FileNotFoundException。

System.IO.FileNotFoundException was unhandled   Message="Could not load file or assembly 'Microsoft.Xna.Framework, Version=3.0.0.0, Culture=neutral, PublicKeyToken=6d5c3888ef60e27d' or one of its dependencies. The system cannot find the path specified."

引用正确,编译时没有问题。我们已经尝试删除引用并再次添加它但它不起作用。 一切都在其他队友的电脑上正常工作。

任何人都知道这是什么问题?

5 个答案:

答案 0 :(得分:2)

检查配置文件以获取对此dll的引用。它最像是一种通过反射加载的类型。我在Ent Lib中看到了这些类型的错误。

如果此文件位于您队友的计算机上的GAC中,或者您有不同的配置文件,则不会显示此错误。

HTH

布赖恩

答案 1 :(得分:1)

您可以尝试使用平台sdk中的depends.exe来调查缺少的依赖项。我假设您已手动验证该文件位于正确的文件夹中?

此外,x64

上的这个dll显然存在问题

答案 2 :(得分:1)

嘿古斯塔沃,听起来好像很久以前就有这个:

http://blogs.msdn.com/b/shawnhar/archive/2008/02/25/xna-framework-on-64-bit-windows.aspx

听起来CLR试图寻找64位版本的XNA,但没有,这就是为什么在XNA Project工作时创建一个新项目,因为那些默认为32位。

将它留在这里作为参考,也已经关闭了这个问题,选择一个答案。 :3

答案 3 :(得分:0)

我通过解决方法解决了这个问题:

我创建了一个新的XNA项目并将所有内容移动到那里,然后我添加了对WindowsForm的引用。 装配问题不再发生了!

感谢您的帮助。

答案 4 :(得分:0)

您可以使用fuslogvw或任何其他提到的内容来查找根本原因。您还可以捕获AssemblyResolve事件,并在FromNeither上下文中手动加载程序集。