代码之家  ›  专栏  ›  技术社区  ›  Oren Mazor

生成ASP.NET Web应用程序DLL要求列表

  •  0
  • Oren Mazor  · 技术社区  · 14 年前

    我正在尝试设置一个Web应用程序(在II7/Win7上为32位,启用了32位设置,所有内容都使用VS2008编译为x86),但显然发生了一些DLL模块加载问题。我一直在看procmon和fusion日志,但没有看到丢失的dll的名称。

    我是ASP.NET的新手(但在其他平台上有相当丰富的经验)。

    我知道我可以调用依赖于二进制文件的depends.exe来查看依赖关系是什么,但是如何在ASP.NET中执行它呢?具体来说,是否可以获取IIS7为我的应用程序加载的DLL列表?

    更新:我手动销毁了我的应用程序的所有二进制文件并重新构建(我猜clean似乎没有做到这一点)。现在它开始工作了。或者至少它正在变得越来越详细。

    1 回复  |  直到 14 年前
        1
  •  1
  •   William Leader    14 年前

    ASP.NET Web项目dll不应依赖于不是默认.NET运行时的一部分或项目中显式引用的任何内容。我将从参考文献开始。通常,ASP.NET Web项目有一个bin文件夹,其中包含已编译的网站/WebApplication及其依赖的任何dll(除了.NET运行时)。这通常由用于创建项目的编程工具完成。

    如果你还是找不到罪魁祸首,你可以尝试使用filemon( http://technet.microsoft.com/en-gb/sysinternals/bb896642.aspx )并使用它来监视IIS,查看它正在查找和未找到的文件。

    另一个选项是检查应该包含在网站/应用程序中的web.config文件。它是一个XML文件,通常有一个程序集部分,其中列出了应加载的程序集。例如,您可能会看到:

    <assemblies>
        <add assembly="MySql.Data, Version=6.2.3.0, Culture=neutral,
        PublicKeyToken=C5687FC88969C44D"/>
    </assemblies>
    

    这意味着代码想要使用mysql.data.dll,特别是该dll的6.2.3.0版本。可以同时安装不同版本的.NET DLL文件。因此,您可能拥有所需的dll,但不是web.config文件中指定的正确版本。