我正在维护我们的应用程序的构建过程,其中包括一个 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 中注册程序集的想法。部署/升级应用程序时太麻烦了。
如果没有指定每个所需程序集的路径,是否还有其他方法可以做到这一点?