【发布时间】:2010-03-26 18:36:27
【问题描述】:
我正在维护我们的应用程序的构建过程,其中包括一个 ASP.Net 应用程序、两个不同的 Win32 服务和其他与系统管理员相关的应用程序。
我希望在调试和部署时都使用以下配置。
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 中注册程序集的想法。部署/升级应用时太麻烦了。
在没有指定每个所需程序集的路径的情况下,是否还有其他方法可以做到这一点?
【问题讨论】:
标签: .net assemblies assembly-resolution fusion