Windows程序员,安装到C:\Windows是一个好习惯吗?

Windows程序员,安装到C:\Windows是一个好习惯吗?,windows,unix,installation,Windows,Unix,Installation,我主要在Linux上开发,其中有/usr/bin和/bin目录。我知道Windows除了C:\Windows和C:\Windows\System32之外,没有任何真正的等价物。许多我移植到windows的命令行程序,我只需编写一个安装程序,将它们复制到C:\windows,因为我不想设置路径变量。我知道正确的方法是设置PATH变量,但对我来说C:\Windows是==to/usr/bin。Windows程序员对此有什么想法?这是一个好习惯吗?有什么真正的缺点吗?我应该安装到程序文件中,并通过注册

我主要在Linux上开发,其中有/usr/bin和/bin目录。我知道Windows除了C:\Windows和C:\Windows\System32之外,没有任何真正的等价物。许多我移植到windows的命令行程序,我只需编写一个安装程序,将它们复制到C:\windows,因为我不想设置路径变量。我知道正确的方法是设置PATH变量,但对我来说C:\Windows是==to/usr/bin。Windows程序员对此有什么想法?这是一个好习惯吗?有什么真正的缺点吗?我应该安装到程序文件中,并通过注册表设置路径变量吗?

通常,您应该将应用程序安装到正确的程序文件目录中;不过也有例外。在Windows上已经为许多路径设置了许多路径,
%PROGRAMFILES%
是其中之一(而
%PROGRAMFILES(X86)%
是另一个路径,因此是“合适的”路径)。

安装到程序文件(甚至是用户特定安装的AppData文件夹),并提供将目录添加到
%PATH%
的选项

安装到程序文件有许多优点:

  • 不会与C:\Windows中的任何其他文件冲突
  • 不会覆盖用户路径上已有的其他工具
  • 使程序的组件更加明显,而不是在C:\Windows中随机分散文件
  • 如果需要包含自己的DLL,则避免依赖冲突(DLL地狱)

为用户提供添加到
%PATH%
的选项,允许用户在与您的应用程序发生其他冲突时跳过该步骤(与程序文件发生冲突的可能性较小,但仍有可能)。如果安装到C:\Windows,您将无法避免此类冲突。

我也一直在考虑这一点。我认为
c:\windows
==
/sbin
是一个更接近的类比。如果您能给出一些例外的例子,这将是一个更好的答案。另一个有用的方法是为用户提供在“开始”菜单中放置快捷方式的选项,该菜单将打开命令窗口,将右项添加到路径。(使快捷方式运行一个可执行文件,将应用程序目录添加到其自身环境中的路径中,然后运行
cmd.exe
)是的,MSVC的命令行工具“开始”菜单项可以做到这一点,这非常有用。