Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么';跟踪程序安装位置的最简单方法是什么?_C#_Linux_Ubuntu_Debian_Packaging - Fatal编程技术网

C# 什么';跟踪程序安装位置的最简单方法是什么?

C# 什么';跟踪程序安装位置的最简单方法是什么?,c#,linux,ubuntu,debian,packaging,C#,Linux,Ubuntu,Debian,Packaging,在我处理它时,我将应用程序的位置硬编码为: public static string MYPROGRAM_PATH = "/path/to/my/workspace"; 显然,一旦我打包并分发我的应用程序,这将不起作用。如何跟踪它的安装位置 我主要关心linux打包(特别是.deb的打包),但我计划将此作为一个练习来学习Windows和Mac打包,因此欢迎提供所有提示。有许多方法可以确定.NET中的安装/运行位置 Environment.CurrentDirectory 将获取当前工作目录

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

public static string MYPROGRAM_PATH = "/path/to/my/workspace";
显然,一旦我打包并分发我的应用程序,这将不起作用。如何跟踪它的安装位置


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

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

Environment.CurrentDirectory
将获取当前工作目录

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

Environment.SpecialFolder.ProgramFiles;
我几乎可以肯定的是,还有很多其他方法可以找到当前的运行路径

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


享受吧

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

Environment.CurrentDirectory
将获取当前工作目录

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

Environment.SpecialFolder.ProgramFiles;
我几乎可以肯定的是,还有很多其他方法可以找到当前的运行路径

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


享受吧

如果您想要程序的.exe的路径,至少在Microsoft的.NET中是
System.Reflection.Assembly.getExecutionGassembly().Location
(或者
path.GetDirectoryName(…)
,如果您想要目录)
我相信这已经在.NET 2.0或之前的版本中出现了,所以Mono应该在这里兼容(刚刚检查过,它至少包含在Mono文档中)。

如果您想要程序的.exe路径,至少在Microsoft的.NET中是
System.Reflection.Assembly.getExecutionGassembly().Location
(或
path.GetDirectoryName(…)
如果需要目录)
我相信这是从2.0或之前就在.NET中出现的,所以Mono应该在这里兼容(刚刚检查过,它至少包含在Mono文档中)。

如果您要将软件打包到deb(或者rpm)中软件包,为什么不让软件包把你的程序安装在/usr/bin中,或者如果你对此不满意,就把它安装在/usr/local/bin中。这样你就不必问20个关于你的程序在哪里的问题了。看看手册页上的“hier”有关文件应安装在文件系统上的位置的详细信息。

如果要将软件打包到deb(或rpm)中软件包,为什么不让软件包在/usr/bin中安装您的程序,或者如果您对此不满意,请在/usr/local/bin中安装它。这样您就不必对程序的位置提出20个问题。查看“hier”的手册页,了解有关文件系统上应安装文件的更多详细信息