存储nuget程序包的设置有没有更好的办法?

问题描述

| 我有一个可通过nuget或单独使用的控制台应用程序。它被安装到NuGet软件包的tools目录中。该应用程序需要3条“配置”信息。 数据库连接字符串 文件夹路径 另外一个配置选项(字符串) 目前,我将这些配置值存储在exe旁边的文本文件中,该文件位于一个名为settings.js的文件中,序列化为json。 当应用程序首次运行时,如果文件不存在,它将创建一个具有默认值的文件。 我将settings.js文件保存在此位置,以便将该文件检入源代码管理。 我的问题是关于跨版本维护设置文件。 如果您通过nuget更新程序包,那么一切都会很好,除了新版本没有我配置的任何设置外,因为为新版本创建了一个新文件夹。 我已经编写了一个powershell脚本在init.ps1中运行,以从软件包的最新版本中提取设置,并且似乎可以正常工作。但是,这有点脏,我想知道在使用nuget交付应用程序时是否有更好的方法来解决此问题。
param($installPath,$toolsPath,$package)
Set-Alias hump (Join-Path $toolsPath hump.exe)

$sorted_list = new-object system.collections.SortedList
$parent_path = Join-Path $installPath \"..\"
foreach($f in Get-ChildItem $parent_path -Filter Humpback* | Foreach {$_.FullName}){
    $sorted_list.Add($f,$f)
}
if($sorted_list.Count -gt 1){
    $old_path = $sorted_list.Values[$sorted_list.Count - 2]
    $new_path = Join-Path $installPath \"tools\"
    $current_settings = Join-Path $new_path \"settings.js\"
    $has_current_settings = Test-Path $current_settings
    if($has_current_settings -eq $false){
        $old_settings = Join-Path $old_path \"tools\\settings.js\"
        Copy-Item $old_settings  $new_path
    }
}
另外,使用命令行工具(nuget.exe)安装软件包时,init.ps1似乎没有运行。这是预期的行为吗?     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)