私は、ASP.Net アプリケーション、2 つの異なる Win32 サービス、およびその他の sysadmin 関連アプリケーションで構成されるアプリケーションのビルド プロセスを維持しています。
デバッグと展開の両方で使用される次の構成で終わりたいと思います。
libraires/ -- Contains shared assemblies used by all other apps.
web/ -- ASP.Net site
service1/ -- Win32 service 1 (seen under the service control manager)
service2/ -- Win32 service 2
adminstuff/ -- Sysadmin / support stuff used for troubleshooting
問題は、app.config 内の privatePath をプローブするアセンブリが、アプリケーション ルート外の相対ディレクトリをサポートしていないことです。つまり: ../libraries は使用できません。とてもイライラします...
アセンブリに厳密な名前を付ける場合、絶対パスをサポートしているように見える codeBase 構成要素を使用できますが、各アセンブリを個別に指定する必要があります。
また、AppDomain.AssemblyResolve イベントにフックしようとしましたが、Main() でイベント ハンドラーを登録する前に、.Net Fusion から FileNotFoundException を取得しています。
アセンブリを GAC に登録するという考えは好きではありません。アプリケーションのデプロイ / アップグレードに手間がかかりすぎます。
必要な各アセンブリのパスを指定せずにこれを行う別の方法はありますか?