2010-04-25 5 views
0

после нажатия кнопки в приложении asp.net process.start() работает с инструментом edmgen с аргументами. И я ловлю ошибку: alt textProcess.Start() edmgen

var cs =ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString; 

    string myArgs="/mode:fullgeneration /c:\""+cs+"\" /project:nwd /entitycontainer:SchoolEntities /namespace:SchoolModel /language:CSharp "; 
    string filename= GetFrameworkDirectory() + "\\EdmGen.exe"; 

    ProcessStartInfo startInfo = new ProcessStartInfo(filename,myArgs); 
    startInfo.UseShellExecute = false; 

    //startInfo.RedirectStandardError = true; 
    Process myGenProcess = Process.Start(startInfo); 

    //genInfo.Text = myGenProcess.StandardError.ReadToEnd(); 

Как это исправить?

ответ

2

Вам необходимо передать полный путь к папке, на которую у вас есть доступ на запись для вывода.

+0

Я только что добавил/outssdl: d: \ "/ generateEntityModel.ssdl \" и решил свою проблему. Также я должен добавить опции/outmsl/outssdl/outobjectlayer/outviews. Благодарю. – loviji

0

Ну, ошибка указывает, что у вас нет доступа к «C: \ Program Files \ Common Files \ Microsoft Shared \ DevServer \ 10.0 \ nwd.ssdl».

Проверьте, что ваш процесс имеет необходимые разрешения для файла и всех папок вверх по дереву.

+0

У меня нет файла nwd.ssdl в папке C: \ Program Files \ Common Files \ Microsoft Shared \ DevServer \ 10.0 \. Поэтому я думаю, что он пытается генерировать во время выполнения. – loviji

+0

Это потому, что вы дали относительный путь; по умолчанию эта папка. – SLaks

Смежные вопросы