2012-07-12 58 views
0

我想通过PHP运行一个.NET应用程序内置在调试模式。奇怪的.NET路径错误

PHP成功运行其他应用程序。

问题是,当我通过Windows资源管理器运行此应用程序(即通过在地址栏中键入“C:\ app.exe参数”),它工作得很好。

但是,当我运行相同的PHP或CMD.exe(命令提示符),应用程序崩溃。 我查看了临时文件夹中生成的元数据文件,它有一个FileNotFound IO异常。

任何线索?

看起来有些臭名昭著的目录问题(工作路径等)

请帮帮忙,谢谢 。

+0

你能发表一些代码吗? – 2012-07-12 12:03:40

+0

这是一个庞大的代码,所以我不认为这是一个好主意发布。 – 2012-07-12 12:05:58

+0

你可以给我们一些线索给你做这个环境吗?即操作系统版本,版本PHP等 – 2012-07-12 12:07:00

回答

1

看起来有些臭名昭著的目录问题

是的,它听起来像一个应用程序错误 - 可能是应用程序发出关于当前工作目录假设它们并非总是如此。可能假定当前工作目录(Environment.CurrentDirectory)与应用程序的安装目录(AppDomain.CurrentDomain.BaseDirectory)相同。

从Windows资源管理器运行应用程序时,这种假设可能是正确的,但不一定在一般情况下。

要访问保存在相对于安装目录的文件夹中的文件,请将Environment.CurrentDirectory替换为AppDomain.CurrentDomain.BaseDirectory

+0

嗨,感谢您回来!我尝试用Environment.CurrentDirectory替换AppDomain.Current ...,但它不起作用。 – 2012-07-12 12:15:00

+0

@Carlos,FileNotFoundException有一个属性FileName,通常包含未找到的文件的名称。一旦你看到这个,便士可能会下降!注意,你也可能有代码使用相对路径来打开一个文件 - 这将相对于当前的工作目录,并且可能还需要被更改为相对于应用程序安装目录的完整路径:'Path.Combine(AppDomain .CurrentDomain.BaseDirectory,relativePath)'。 – Joe 2012-07-12 12:21:26

+0

嗨,我让代码不能打开任何文件,问题依然存在。后来,我看到你在说的文件名是一个dll文件。现在,这就更加奇怪了 - 不仅dll文件与应用程序存在于同一个目录中,而且它们的文件夹也包含在System的PATH变量中。不过谢谢你的回答。 [配置:Windows 7家庭高级版,PHP 5+ - > XAMPP] – 2012-07-12 13:00:04