代码之家  ›  专栏  ›  技术社区  ›  Brian Stewart

.NET符号从程序集中消失

  •  0
  • Brian Stewart  · 技术社区  · 15 年前

    我有一个项目,用C++ C++构建,还有C++和CLI。我有以下组成部分:

    Assembly A  (C++/CLI)
     | uses
    Assembly B  (C++/CLI)
     | uses
    Static Lib C (Native C++)
    

    +TFModelSetNETD, Version=1.0.3532.42171, Culture=neutral, PublicKeyToken=null
      +TFModelSetNETD.dll
        + References
          + {} -
          + <CppImplementationDetails>
          + <CrtImplementationDetails>
          + vc_attributes
    

    仅此而已。在旧版本中,我看到这四个条目,加上在程序集B、静态库C、其他库中声明的所有名称空间,再加上几个boost和std名称空间。我应该提到这是在VisualStudio2008中。

    非常感谢您的想法、提示或调试建议。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Brian Stewart    15 年前

    所发生的事情是,所讨论的符号的头文件从未包含在任何cpp文件中。我对其工作原理的唯一解释是,可能其他编译单元中的一个间接地包含了所讨论的标题,但当它在重写中更改时,符号不再包含在任何地方。信不信由你,与我遇到的下一个问题相比,这个问题很容易——boost::thread导致程序集在加载时抛出异常,因为与DLL初始化和线程本地存储相关的冲突。