gpt4 book ai didi

c# - Environment.CurrentDirectory 在运行已安装的应用程序时产生意外结果

转载 作者:可可西里 更新时间:2023-11-01 07:49:22 26 4
gpt4 key购买 nike

背景:

我为我的应用构建了一个安装程序,我所有的 dll 和内容文件都被正确地复制到 C:\Program Files\MyCompany\MyApp 目录。当我从 Visual Studio 运行我的应用程序时,一切正常。但是,当我运行我的应用程序的已安装版本时,我收到了 DirectoryNotFoundException。问题似乎出在 Environment.CurrentDirectory 上。

我期望 Environment.CurrentDirectory 是...

"C:\\Program Files\\MyCompany\\MyApp"

...但实际上...

"C:\\Documents and Settings\\DanThMan"

这是怎么回事?我该如何解决这个问题?

谢谢。

编辑:

好的,嗯。仅当我运行开始菜单快捷方式时才会出现此问题。如果我直接运行 MyApp.exe,一切都很好。

编辑 2:

我想我现在已经弄清楚了。在我的安装程序(这是一个 Visual Studio SetupProject)中,开始菜单快捷方式有一个名为 WorkingFolder 的属性,它“指定将安装快捷方式的目标应用程序的文件夹”。我不小心将 WorkingFolder 设置为“MyCompany”。它应该是“应用程序文件夹”。现在我已正确设置它,Environment.CurrentDirectory 再次按预期工作。感谢您的所有帮助。

编辑 3:

但是,阅读下面的警告后,我决定使用以下内容来替代 Environment.CurrentDirectory:

System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);

最佳答案

如果您想获取可执行文件运行目录的路径,则不应依赖 Environment.CurrentDirectory,因为它可以通过多种方式更改(shotrtcut 设置等)。请尝试以下选项之一:

System.IO.Path.GetDirectoryName(Application.ExecutablePath);

System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);

关于c# - Environment.CurrentDirectory 在运行已安装的应用程序时产生意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1343406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com