我收到以下常见错误:
无法加载文件或程序集“...”或其依赖项之一。指定的模块无法找到。
问题是这个 dll 引用了非托管 dll,因此它永远无法正确加载。我只是想让 IIS 忽略这个文件。
我正在使用<remove assembly>
web.config 中的标签,但没有运气。
关于如何防止我的一个 dll 加载的任何建议?
虽然我无法找到限制特定程序集的方法,但我能够通过删除所有程序集并添加我需要的特定程序集来完成它。将 web.config 文件更改为:
<system.web>
<compilation targetFramework="4.0">
<assemblies>
<remove assembly="*"/>
<add assembly="example.dll"/>
</assemblies>
</compilation>
</system.web>
.Net 运行时不会为了好玩而加载程序集。它仅在需要时才这样做 - 即您正在积极使用该程序集中的类/方法。只要不执行使用它们的代码,您甚至可以引用不存在的程序集。
因此,阻止程序集被加载不会使您的应用程序工作 - 即删除程序集并看到您的应用程序由于缺少依赖项而崩溃。
如果您以某种方式自己加载程序集(例如 Assembly.Load),那么您需要弄清楚如何跳过此类程序集......