为什么我的程序不会从Program Files目录运行,而是从其他地方运行?

时间:2008-12-11 11:27:09

标签: .net windows

我的程序在我的驱动器上的任何其他位置运行良好,除了Program Files目录(Windows XP),我以管理员身份登录,因此我拥有驱动器的完全权限。它从c的根目录运行良好:windows目录基本上是除Program Files之外的任何其他地方。我在4台不同的机器2 XP,2 Vista上重新创建了这个问题。

我的程序是C#.Net 2.0程序。问题到底是什么?

我甚至将我的整个项目复制到Program Files目录中,我无法从那里调试它只是不会运行,根本没有错误。

感谢您的帮助。

8 个答案:

答案 0 :(得分:2)

猜测,但如果您的程序试图将数据保存到程序目录,Vista将阻止此操作并将路径动态更改为c:\ users [user] \ AppData。也许这会给你一些关于最新情况的暗示。

否则我们需要有关您的计划的更多信息来帮助您。

答案 1 :(得分:2)

如果无法调试,则始终可以创建调试日志。它有点慢,但最终你会找到程序停止工作的地方。

LogDebug('before 1');
Statement1;
LogDebug('before 2');
Statement2;
LogDebug('before 3');
Statement3;
LogDebug('after 3');

答案 2 :(得分:1)

我已经尝试了一个没有应用任何orgranizational政策的全新XP安装程序。

: - (

答案 3 :(得分:0)

程序确实从路径中有空格的其他文件夹运行,例如Documents and Settings,程序会在用户profile \ appdata文件夹中创建一个临时文件。

如果我从某个地方运行应用程序几次它将从我刚刚注意到我得到一个错误的调试选项,但VS不会告诉我问题的位置我只是得到错误belo。< / p>

test.exe中0x79fb96a2处的未处理异常:0xC0000005:访问冲突读取位置0x0000000c。

可以在XP和Vista上重新创建问题。

非常感谢

答案 4 :(得分:0)

如果这是由贵公司的“大哥”管理的机器,听起来只有“允许”的应用程序可以从“程序文件”运行

答案 5 :(得分:0)

您的程序在其目录中读取了什么?

为什么要在user / appdata中创建临时文件? 对于临时文件,您应该使用API​​获取当前配置文件的临时文件夹,理想情况下是临时文件名,如下所示:

string tempFilePath = Path.Combine(Path.GetTempPath(), Path.GetTempFileName());

为了正确地帮助您,我们需要知道您的程序应该在init上做什么。

答案 6 :(得分:0)

你有没有运行防病毒软件的东西?

这是什么?

  • 是否未运行(可能与操作系统相关)
  • 或者它正在崩溃(可能是权限)
  • 正在运行并且没有产生预期的输出? (可能是权限)

您检查了事件日志吗?

尝试从批处理文件中调用它,看看会发生什么。

嗯,有人想在他们的机器上试试他的.exe吗?

答案 7 :(得分:0)

对此我很抱歉但是我发现了问题,我有一些垃圾代码正在寻找传递的参数,包括'file'和'program files'中的文件强制程序进入没有gui的命令行模式。真的很抱歉浪费你的时间来解决这个微不足道的问题,你生活和学习!

感谢所有人。