跟踪我的程序安装位置的最简单方法是什么?

时间:2009-11-15 02:38:47

标签: c# linux ubuntu debian packaging

当我正在处理它时,我的应用程序的位置是硬编码的:

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

显然,一旦我打包并分发我的应用程序,这将无效。如何跟踪其安装位置?

我主要关注的是linux打包(特别是.deb's),但我打算将它作为练习来学习Windows和Mac包装,所以欢迎所有提示。

3 个答案:

答案 0 :(得分:1)

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

Environment.CurrentDirectory

将获取当前的工作目录。

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

Environment.SpecialFolder.ProgramFiles;

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

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

享受!

答案 1 :(得分:1)

如果你想要程序的.exe的路径,至少在微软的.NET中是System.Reflection.Assembly.GetExecutingAssembly().Location(或Path.GetDirectoryName(...),如果你想要目录) 我相信这是自2.0或之前的.NET,所以Mono应该在这里兼容(刚刚检查过,它至少包含在Mono文档中。)

答案 2 :(得分:1)

如果您打算将软件打包到deb(或rpm)软件包中,为什么不将软件包安装在/ usr / bin中,或者如果您对此不满意,请将其安装在在/ usr / local / bin目录。然后,您不必播放20个关于程序所在位置的问题。请查看“hier”的手册页,了解有关文件系统上应安装文件的位置的更多详细信息。