WebサイトをインストールしてIIS仮想ディレクトリを作成する小さなインストーラーアプリを作成したいと思います。このアプリは、Windows XP / Server 2003(IIS 6)およびVista / 2008(IIS 7)で実行する必要があります。
問題は次のとおりです。IIS6の場合はWMI/MetabaseAPIを呼び出してvirtdirを作成し、IIS 7の場合ははるかに優れたAPIであるMicrosoft.Web.Administrationがありますが、そのアセンブリはIIS7システムでのみ使用できます。
素朴なアプローチ:
...
if (OperatingSystem == old)
{
call metabase API...
}
else
{
call Microsoft.Web.Administration...
}
...
いいですね。しかし、Microsoft.Web.Administration DLLをロードしようとしているときに、これが古いシステムでクラッシュしないようにするにはどうすればよいですか?または、アセンブリを最初に使用したときに、アセンブリがロードされたばかりですか?アセンブリを呼び出しているメソッドが最初に使用されるのはいつですか?
おそらく、CLR / .NET仕様によってある程度の決定論が保証されていなければ、テストは役に立ちません。
このトピックに関するあなたの経験、ヒント、または解決策を聞くのを本当に楽しみにしています。これまでのところ、Web上でリモートで使用できるものは見つかりませんでした。