.Net 2.0和.Net 4.0当前目录之间的区别

时间:2013-05-31 15:33:43

标签: c# .net .net-4.0 .net-2.0 .net-4.5

如前所述,(Running .Net 2.0 executable in .Net 4.0 program)我在使用.Net 4.0程序运行.Net 2.0 exe时遇到问题。我通过安装.Net 2.0解决了这个程序。现在程序可以在某些情况下正常运行。也就是说,如果我只使用与我的程序相同的目录中的文件。会发生以下情况:

  1. 用户选择文件
  2. .Net 2.0 exe对该文件起作用,创建一个新文件
  3. .Net 2.0 exe作用于新文件
  4. 如果原始文件与程序(和.Net 2.0 exe)位于同一目录中,则一切正常。由2.0 exe创建的文件保存在该目录中,一切都很好。但是,如果原始文件与程序不在同一目录中,则2.0 exe会在原始文件的文件夹中创建新文件。这会导致程序崩溃,因为它希望新文件与2.0 exe位于同一目录中。值得注意的是,这只发生在运行.Net 2.0和4.0的XP中。在运行.Net 4.5的主Windows 7计算机上,不会出现此问题。

    以下是我调用2.0 exe的代码:

    Process process = new Process();
    ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.FileName = "cmd.exe";
    startInfo.Arguments = "/C 2.0EXE -i " + userFile + " -o " + resultsFile;
    process.StartInfo = startInfo;
    startInfo.WorkingDirectory = Environment.CurrentDirectory;
    process.Start();
    process.WaitForExit();
    

    我有什么明显的解决方案吗?最好不要涉及修改路径,因为在我计划分发此应用程序时,我不想让最终用户这样做。

    编辑:即使我强制工作目录是某个常量目录(而不是Environment.CurrentDirectory),它仍然无法正常工作。现在它将文件保存在正确的位置(步骤2),但2.0 exe然后在与原始文件相同的文件夹中查找新文件(即步骤3失败)。同样,这只发生在运行.Net 4.0和2.0的XP机器上。

0 个答案:

没有答案
相关问题