【发布时间】:2010-12-29 00:56:39
【问题描述】:
我想编写一个安装网站并创建 IIS 虚拟目录的小型安装程序。该应用程序应在 Windows XP/Server 2003 (IIS 6) 以及 Vista/2008 (IIS 7) 上运行。
问题是:对于 IIS 6,我们通过调用 WMI/Metabase API 创建虚拟目录,对于 IIS 7,有一个更好的 API:Microsoft.Web.Administration,但它的程序集仅在 IIS 7 系统上可用。
天真的方法:
...
if (OperatingSystem == old)
{
call metabase API...
}
else
{
call Microsoft.Web.Administration...
}
...
很好,不是吗?但是,如何确保在尝试加载 Microsoft.Web.Administration DLL 时不会在旧系统上崩溃?或者是刚加载的程序集,当它第一次使用时?什么时候第一次使用调用程序集的方法?
我想,如果没有 CLR/.NET 规范保证某些确定性,测试也无济于事。
我非常期待听到您对此主题的经验、提示或解决方案。到目前为止,我还没有在网络上找到任何可以远程使用的东西。
【问题讨论】:
标签: assemblies clr reference fusion