Powershell模块存储用户设置的位置

时间:2014-08-14 21:56:31

标签: powershell build module settings

我正在开发基于PowerShell的构建自动化工具箱(http://www.crawler-lib.net/powershell-build-tools-samples)。它是一个powershell模块这个工具箱将安装在32位和64位PowerShell模块目录中,因为它可以通过Visual Studio中的NuGet控制台(32位PowerShell主机)和PowerShell ISE(64位)执行在64位操作系统上。)

我想为工具箱的开发人员和用户提供一种简单的方法来设置他们的工具位置或覆盖工具箱的自动检测。所以我必须存储具有此设置的属性或XML文件。为PowerShell模块存储此类设置的好(标准)方法是什么?

2 个答案:

答案 0 :(得分:0)

我看到的大多数工具都遵循Unix惯例,并将用户首选项文件放在用户的主目录中。例如,Mercurial将其用户配置文件放在那里,名为mercurial.ini。 Windows需要这些文件的其他位置,但我喜欢用户的根:它是最容易找到和到达的地方。

现在您可以决定格式了。 :-)我喜欢JSON,因为它不像XML那么冗长,但我认为用户可能更容易使用XML。有更好的XML工具,而且它的使用时间更长。

答案 1 :(得分:0)

就个人而言,我更喜欢使用:

$AppName = [System.IO.Path]::GetFileNameWithoutExtension($PSCommandPath);
$myCompanyName = "myCompanyName";

*如果您不想将其放入漫游配置文件中,请使用[System.Environment + SpecialFolder] :: LocalApplicationData

$ApplicationDataFolder = [System.Environment]::GetFolderPath([System.Environment+SpecialFolder]::ApplicationData);

*构建路径

$myStorageFolder = ($ApplicationDataFolder | Join-Path -ChildPath $myCompanyName) | Join-Path -ChildPath $AppName;