0

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

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

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

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

4

3 回答 3

1

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

Environment.CurrentDirectory

将获得当前工作目录。

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

Environment.SpecialFolder.ProgramFiles;

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

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

享受!

于 2009-11-15T03:09:16.750 回答
1

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

于 2009-11-15T03:35:11.897 回答
1

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

于 2009-11-15T16:09:25.847 回答