Я думаю, что нашел ошибку. На мой взгляд, Process.Start работает не в том каталоге.
Для тестирования создайте шаблон консольного приложения по умолчанию и вставьте следующее:
using System;
using System.Diagnostics;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
bool test = false;
DirectoryInfo root = Directory.CreateDirectory(
System.IO.Path.Combine(Directory.GetCurrentDirectory(), "folder"));
DirectoryInfo bug = Directory.CreateDirectory(
System.IO.Path.Combine(root.FullName, "bug"));
DirectoryInfo bugDotCom = Directory.CreateDirectory(
System.IO.Path.Combine(root.FullName, "bug.com"));
ProcessStartInfo bugPSI = new ProcessStartInfo(bug.FullName);
ProcessStartInfo bugDotComPSI = new ProcessStartInfo(bugDotCom.FullName);
if (test)
{
Console.WriteLine(bug.FullName);
Process.Start(bugPSI);
}
else
{
Console.WriteLine(bugDotCom.FullName);
Process.Start(bugDotComPSI);
}
Console.ReadKey();
}
}
}
когда переменная test установлена в false, каталог bug.com должен быть открыт, в противном случае каталог bug . Однако, этот пример показывает, что всегда bug.com открыт (независимо от переменной test ) - по крайней мере, для меня.
В чем дело? Я что-то упустил или это просто ошибка?