我正在尝试从注册表运行 .Net C# 应用程序Run
键(在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
,其他字符串值存在并启动一切都很好)。但由于某种莫名其妙的原因,我的应用程序的路径无法启动我的应用程序。因此,我决定从命令提示符手动运行该命令,只是为了看看这是否是问题所在。它是。所以现在我真的很困惑:
这是我在发布模式下编译的 .Net 4.0 C# 应用程序。该应用程序位于:
C:\Program Files (x86)\MyCompany\MyProduct\MyProduct.exe
我可以双击该应用程序并且它可以正常运行。我还可以打开 CMD 窗口并执行以下操作:
cd "C:\Program Files (x86)\MyCompany\MyProduct\"
MyProduct.exe
该应用程序启动得很好。HOWEVER,如果我尝试这样做:
"C:\Program Files (x86)\MyCompany\MyProduct\MyProduct.exe"
应用程序does not发射。 (!)所以显然注册表项也不起作用。
是否必须采取某种额外步骤才能从完整路径运行 .Net 应用程序?
显然您的应用程序取决于“当前目录”。用于打开某种文件。
最好的办法是找到该依赖项并使用绝对路径修复它。
如果不可能,第二个最佳选择是尽快将当前文件夹更改为正在运行的 .EXE 的文件夹。这意味着您应该尽快执行此行:
Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory;
但这只有在您设法在错误代码之前执行时才有效。例如,当它在静态构造函数中时,可能会很困难。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)