【问题标题】:What's the simplest way to keep track of where my program is installed?跟踪我的程序安装位置的最简单方法是什么?
【发布时间】:2009-11-15 02:38:46
【问题描述】:

在我处理它时,我已经硬编码了我的应用程序的位置:

public static string MYPROGRAM_PATH = "/path/to/my/workspace";

显然,一旦我打包和分发我的应用程序,这将不起作用。如何跟踪它的安装位置?

我主要关心的是 linux 打包(特别是 .deb),但我计划以此作为练习来了解 Windows 和 Mac 打包,因此欢迎所有提示。

【问题讨论】:

    标签: c# linux ubuntu debian packaging


    【解决方案1】:

    有多种方法可以确定 .NET 中的安装/运行位置

    Environment.CurrentDirectory
    

    将获取当前工作目录。

    如果您已将应用程序安装到 Program Files 中的特定位置,则可以使用:

    Environment.SpecialFolder.ProgramFiles;
    

    我几乎肯定还有很多其他方法可以找出当前的运行路径。

    在 Linux 方面,我假设这将在 Mono 下运行?如果是这样,我不确定他们如何处理特殊文件夹。

    享受吧!

    【讨论】:

      【解决方案2】:

      如果您想要程序的 .exe 的路径,至少在 Microsoft 的 .NET 中是 System.Reflection.Assembly.GetExecutingAssembly().Location(或 Path.GetDirectoryName(...),如果您想要目录) 我相信这在 .NET 2.0 或更早版本中就已经存在,因此 Mono 应该在这里兼容(刚刚检查过,它至少包含在 Mono 文档中)。

      【讨论】:

        【解决方案3】:

        如果您要将软件打包到一个 deb(或者可能是 rpm)包中,为什么不让该包将您的程序安装在 /usr/bin 中,或者如果您对此不满意,请将其安装在/usr/本地/bin。这样你就不必回答 20 个关于你的程序所在位置的问题了。查看“hier”的手册页以获取有关文件应安装在文件系统上何处的更多详细信息。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-16
          • 1970-01-01
          • 1970-01-01
          • 2018-09-17
          相关资源
          最近更新 更多