0

运行 ASP.NET 应用程序时出现以下错误。X 是在 reference.cs 中定义的 typedDataTableRow (另一个项目中的 Web 服务的代理,它不是解决方案的一部分)。ASPTemp 文件夹中只有一个 Y.dll 文件。我重新启动了Visual Studio,清理了解决方案,删除了ASPTemp文件夹,删除了解决方案下所有编译好的dll,重新启动了IIS。在调试器中,模块窗口中有一个 Y.dll 实例。我无法确定为什么会收到此异常。异常中的两条路径完全相同!不知何故,运行时认为有两个 Y.dll 实例。(Y 是我的项目/程序集的名称)。我正在尝试使用 Fuslogvw.exe,但它没有显示最少的信息,也没有任何用处。将发布另一个关于它的问题。我在 Windows 7 64 位中使用 Visual Studio 2010。

我要提到的一个注意事项是我有两个非常相似的类型化数据集。一个是从另一个加上新的数据表创建的。我使用 Merge 方法将数据从一个复制到另一个。我在第二个 ..designer.cs 文件中对数据集类名进行了全局重命名,我确信这两个数据集是唯一的。第一个的类名在第二个中不存在。我提到了这一点,以防两个数据集可能是造成这种情况的原因,但我不知道如何。

任何想法如何解决这个问题?

Exception Type: System.InvalidCastException
Message: [A]X cannot be cast to [B]X. Type A originates from 'Y, Version=123.10.0.32434,
 Culture=neutral, PublicKeyToken=null' in the context 'Default' at location 
'c:\temp\ASPTemp\xx\bf09df88\62e1519a\assembly\dl3\bdf55bf9\f02959af_c88cce01\Y.dll'. 
Type B originates from 'Y,  Version=123.10.0.32434, Culture=neutral, PublicKeyToken=null' 
in the context 'Default' at location 'c:\temp\ASPTemp\xx\bf09df88\62e1519a\assembly\dl3\bdf55bf9\f02959af_c88cce01\Y.dll'
4

2 回答 2

0

我删除了第二个数据集和所有将其作为测试引用的代码,问题就消失了。当两个数据集包含在两个不同的类中并且没有编译错误时,我仍然无法解释这种行为。

于 2013-07-30T16:20:16.197 回答
0

这真的太模糊了,无法用给出的信息来解决。听起来您复制/粘贴了某些内容,但未能正确重命名所有内容。

修改生成的代码时必须非常小心。在 UI 或设计器中进行更改时,它们通常会更新不仅仅是 Designer.cs 文件。此外,还可能需要更新配置文件以反映更改。

于 2013-07-30T17:09:01.943 回答