无法加载类型...因为父级不存在

时间:2015-03-12 14:38:02

标签: c++ templates visual-studio-2008 clr .net-2.0

之前提出过这类问题,但我还没有找到实际发生情况的明确解释 - “父母不存在”实际上是什么意思?< / p>

我的项目中最近开始出现此错误的部分是单片的。是的,应用程序加载DLL,但据我所知,实例化缺失类型和类型本身的代码都在同一个程序集中。

我有一个模板化的托管类型,它本身是另一个模板化类型的子类:

template <class T>
public ref class my_class : public my_superclass<T> {
   // blah blah blah
};

在不同的地方,这个模板有各种类型的专业化。除int专用的版本外,它们都可以正常工作并加载。当应用程序运行(调试版本)时,该特定专业化的实例化会抛出:

  

yourapp.exe中发生了'System.TypeLoadException'类型的异常,但未在用户代码中处理。

     

其他信息:无法加载类型   'my_class&LT; INT&GT;'来自程序集'yourapp,Version = 1.2.3.0,Culture = neutral,PublicKeyToken = null',因为父项不存在。

同样,同一个程序集可以加载my_class<float>my_class<double>my_class<unsigned int>而无需眨眼,并且可以在之前的版本中加载my_class<int>

我尝试过完全重建。我已经尝试手动删除所有输出目录,重新启动和重建,同样的问题仍然存在。我没办法。这是什么意思?我该如何解决?

0 个答案:

没有答案