4

我收到以下常见错误:

无法加载文件或程序集“...”或其依赖项之一。指定的模块无法找到。

问题是这个 dll 引用了非托管 dll,因此它永远无法正确加载。我只是想让 IIS 忽略这个文件。

我正在使用<remove assembly>web.config 中的标签,但没有运气。

关于如何防止我的一个 dll 加载的任何建议?

4

2 回答 2

2

虽然我无法找到限制特定程序集的方法,但我能够通过删除所有程序集并添加我需要的特定程序集来完成它。将 web.config 文件更改为:

<system.web>
    <compilation targetFramework="4.0">
        <assemblies>
            <remove assembly="*"/>
            <add assembly="example.dll"/>
        </assemblies>
    </compilation>
</system.web>
于 2012-08-15T17:42:49.477 回答
1

.Net 运行时不会为了好玩而加载程序集。它仅在需要时才这样做 - 即您正在积极使用该程序集中的类/方法。只要不执行使用它们的代码,您甚至可以引用不存在的程序集。

因此,阻止程序集被加载不会使您的应用程序工作 - 即删除程序集并看到您的应用程序由于缺少依赖项而崩溃。

如果您以某种方式自己加载程序集(例如 Assembly.Load),那么您需要弄清楚如何跳过此类程序集......

于 2012-08-14T18:46:35.640 回答