我想编写一个安装网站并创建 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 规范保证某些确定性,测试也无济于事。
我真的很期待听到您对此主题的经验、提示或解决方案。到目前为止,我还没有在网络上找到任何可以远程使用的东西。