2010-09-23 64 views
1

我建立在.NET Framework 4.0中一个Silverlight 4.0的应用程序,我看到这个错误:“System.Action声称它被定义”的错误

参考输入System.Action声称它是在“C定义:\ Program Files \ Reference Assemblies \ Microsoft \ Framework \ Silverlight \ v4.0 \ mscorlib.dll',但无法找到(CS1684) - c:\ Program Files \ MSBuild \ Seesmic \ SDP \ Seesmic.Sdp.Utils .dll

在我的项目中,我引用了它声称在其中定义的mscorlib.dll。任何想法?

+0

你是如何参考装配的?是否有可能通过文件引用mscorlib而不是GAC? – 2010-09-23 08:34:02

回答

1

这是一个DLL的奇怪位置(在MSBuild目录中)。是否有可能试图从您的Silverlight应用程序中使用对桌面装配的引用?诚然,在v4中的组装可移植性中,我认为这不是一个问题,但值得深入研究。

如果您可以提供有关您如何构建以及Seesmic如何进入框架的更多细节,那将有所帮助。

0

Seesmic.Sdp.Utils.dll可能需要不同版本的mscorlib.dll,因为它是编译引用该不同的版本。在Seesmic.Sdp.Utils.dll有一个类使用System.Action作为基类,只有当你参考相同版本的mscorlib.dll包含相同的System.Action,否则你将无法使用该类。

0

有时你在你的项目中创建一个类'YourClass.cs',声明'YourProject.YourModule'。过了一段时间,你会注释掉YourClass.cs内容,因为你现在不需要它。但是您不要从您的项目中排除.cs文件。在这种情况下,编译器会在构建项目时发出警告,如“声明它是定义”。这是因为项目文件包含此.cs文件的条目。当有人试图在该项目上使用反射dll时,这个错误会阻止代码访问该类,因为它实际上不是物理存在的,而是仅存在于项目文件中。

相关问题