jbe*_*ock 3 c# windows executable path
我正在尝试让 .Net C# 应用程序从注册表项运行Run(位于HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,其他字符串值存在并启动一切正常)。但由于某种莫名其妙的原因,我的应用程序的路径无法启动我的应用程序。因此,我决定从命令提示符手动运行该命令,只是为了看看这是否是问题所在。它是。所以现在我真的很困惑:
这是我在发布模式下编译的 .Net 4.0 C# 应用程序。该应用程序位于:
C:\Program Files (x86)\MyCompany\MyProduct\MyProduct.exe
Run Code Online (Sandbox Code Playgroud)
我可以双击该应用程序并且它可以正常运行。我还可以打开 CMD 窗口并执行以下操作:
cd "C:\Program Files (x86)\MyCompany\MyProduct\"
MyProduct.exe
Run Code Online (Sandbox Code Playgroud)
该应用程序启动得很好。 但是,如果我尝试这样做:
"C:\Program Files (x86)\MyCompany\MyProduct\MyProduct.exe"
Run Code Online (Sandbox Code Playgroud)
应用程序不启动。(!)所以显然注册表项也不起作用。
是否必须采取某种额外步骤才能从完整路径运行 .Net 应用程序?
显然您的应用程序取决于“当前目录”。用于打开某种文件。
最好的办法是找到该依赖项并使用绝对路径修复它。
如果不可能,第二个最佳选择是尽快将当前文件夹更改为正在运行的 .EXE 的文件夹。这意味着您应该尽快执行此行:
Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory;
Run Code Online (Sandbox Code Playgroud)
但这只有在您设法在错误代码之前执行时才有效。例如,当它在静态构造函数中时,可能会很困难。
| 归档时间: |
|
| 查看次数: |
3011 次 |
| 最近记录: |