代码之家  ›  专栏  ›  技术社区  ›  Chris

错误消息:无法加载文件或程序集“delete reportingcontents”

  •  0
  • Chris  · 技术社区  · 14 年前

    我刚收到一条意外的错误消息:

    错误消息:无法加载文件或 程序集“删除报告内容”或 它的一个依赖项。所在地 程序集的清单定义执行了 与程序集引用不匹配。 (来自hresult的异常:0x80131040)

    我有一个ASP.NET网站,有一个abotu 10个项目,把它编译成dlls和bin目录。报告内容是这些项目之一。在过去,我成功地将新版本的文件(dll、pdb和xml)复制到bin目录中,并回收了应用程序池,它只是自己获取了新版本。这一次我想“我不应该在站点上有调试版本”,所以我构建了一个发布版,只是复制了DLL和XML文件,并要求部署人员删除PDB。

    当我被告知一切都完成后,我试图访问该网站,并收到了上述错误消息。

    令我吃惊的是,它提到的程序集是“删除报告内容”,我不知道“删除”可能来自哪里。

    我不知道会出什么问题。所以我希望你能帮忙:

    我的选择是:

    1)我应该使用调试版本,因为已经有了调试版本。 2)我的部署人员没有删除不再相关的PDB。 3)应用程序池回收未正确刷新代码,它期望使用旧的dll并获取新的dll。 4)其他地方出了一些真正不应该发生的问题。

    非常感谢您的任何想法或建议…我需要部署这个代码,在我知道第一次出了什么问题之前,我真的不敢再这样做…

    值得一提的是,我只有通过别人才能接触到生活环境,所以我自己无法轻松检查那里的任何东西。

    如果它在这里很有用的话,这里是伴随的堆栈跟踪:

    Error Target: System.Reflection.Assembly _nLoad(System.Reflection.AssemblyName, System.String, System.Security.Policy.Evidence, System.Reflection.Assembly, System.Threading.StackCrawlMark ByRef, Boolean, Boolean)
    
    Stack Trace:
      at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
      at System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
      at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
      at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
      at System.Reflection.Assembly.Load(String assemblyString)
      at System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective)
    
    1 回复  |  直到 14 年前
        1
  •  0
  •   Chris    14 年前

    回想起来,答案似乎很明显。他没有删除我想要替换的文件,而是将它们重命名为“删除报告内容”,然后复制到新文件中。当然,这意味着他们被加载了,我认为他们抱怨文件名不正确或者类似的事情。结果是,当我让他适当地删除它们时,一切都正常了。