【发布时间】:2019-08-01 19:43:28
【问题描述】:
我有一个具有以下结构的 VS 解决方案:
库项目 (.dll)
使用 #1 库项目的应用程序
我在应用程序 (#2) 中定义了 app.config,它在 appSettings 中定义了 SaveLogsToDirectory 路径。这个值最终被库项目用来保存生成的日志。
api的简单使用System.Configuration.ConfigurationManager.AppSettings["SaveLogsToDirectory"]
在库中从 app.config 中获取值。
库项目定义了一个自定义的System.Configuration.Install.Installer 类。当通过控制面板从 Windows 卸载应用程序时,我希望删除路径 SaveLogsToDirectory 处生成的日志。问题是以下代码仅在卸载执行期间返回 null
System.Configuration.ConfigurationManager.AppSettings["SaveLogsToDirectory"]
我尝试过的其他方法之一是使用System.Configuration.ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly())
但在卸载过程中,api Assembly.GetExecutingAssembly() 返回对库项目的引用。
我需要有关如何在卸载期间从库中访问应用程序程序集的帮助?值得一提的是,我无法将应用程序中定义的类路径提供给 OpenExeConfiguration api,因为任何其他应用程序都可以使用该 dll,并且其他应用程序可能没有定义该类。
【问题讨论】:
-
安装程序知道安装目录。问题是,它不知道配置文件名。作为一个选项,您可以将设置存储在 dll 的配置文件中。这样安装程序也会知道配置文件名(yourdll.config)并可以使用它。
标签: c# .net winforms setup-deployment appsettings