2013-05-07 3 views
2

Я попытался установить процесс с помощью кнопки щелчка, где я могу выполнять следующие действия.Попробуйте автоматизировать процесс сборки для решения C# с помощью пользователя.

Цель

  1. Скачать последнюю версию кода из SVN.
  2. Построить 2 набора кодов для создания и библиотек в совершаю- (а) веб-приложения в режиме выпуска (б) Отдельное приложение в режиме отладки
  3. Затем замените некоторые значения ключей в файлах конфигурация.
  4. Затем поместите их в определенное место.

Выполняемые до сих пор

Created demo.bat файл, который будет строить EXE и DLL-библиотеки для Standalone, как показано ниже


REM * ============================Starting Setup for Standalone====================================== 
SET Folder= C:\Automating\Application\Source\StandaloneApp\ 

cd %Folder%App1 
msbuild /property:Configuration=Debug App1.csproj /t:clean /t:build 

cd %Folder%App2 
msbuild /property:Configuration=Debug App2.csproj /t:clean /t:build 

del /F /S /Q /A %Folder%Setup\*.* 

XCOPY %Folder%App1\bin\Debug\*.* %Folder%Setup\*.* /S /Y /F /Q 
XCOPY %Folder%App2\bin\Debug\*.* %Folder%Setup\*.* /S /Y /F /Q 

Created другой летучей мыши файл demo1.bat, чтобы изменить команду запрос VS2010 cmd prompt


%comspec% /k ""c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 
%comspec% /k ""C:\Automating\BuildAuto\BuildAutomation\demo.bat"" 

Создано более одного CMD файлов для загрузки из SVN


TortoiseProc.exe /command:export /URL:[URL path] /Path:"C:/Automating/Demo" 

Наконец Веб-приложение, в котором от пользователя можно нажать кнопку для загрузки в соответствии с svnExport.bat и построить загруженный код как на demo1.bat.


protected void Button2_Click(object sender, EventArgs e) { 
ProcessStartInfo psi = new ProcessStartInfo(@"C:\AutomatingPOC\BuildAuto\BuildAutomation\demo1.bat"); 
      psi.UseShellExecute = false; 
      psi.RedirectStandardOutput = false; 
      psi.CreateNoWindow = false; 
      Process.Start(psi); 
} 

Загрузка события работают правильно, но строить не работают. Мне нужна помощь в том, как мне создать код

ответ

0

, если вы установите psi.UserShellExecute в false, тогда вам нужно будет указать, что команда для выполнения на самом деле является «cmd.exe» и что командный файл является аргументом. Вам также придется управлять задержкой между моментом выполнения запроса и временем завершения сборки.

+0

Я старался следить за тем, что вы говорите. Ниже приведено изменение кода для события. Но процесс сборки еще не запущен из-за этого ProcessStartInfo psi = new ProcessStartInfo (@ "C: \ AutomatingPOC \ BuildAuto \ BuildAutomation \ demo1.bat"); psi.UseShellExecute = false; psi.RedirectStandardOutput = false; psi.CreateNoWindow = false; psi.Arguments = @ "% comspec%/k C: \ AutomatingPOC \ BuildAuto \ BuildAutomation \ demo.bat"; Process.Start (psi); – vicage

+0

Нет, вы что-то пропустили. Понимайте разницу между процессом, который вы хотите запустить, и аргументами этого процесса. Судя по этому коду, вы не совсем понимаете, почему вы строите или заполняете ProcessStartInfo так, как вы. http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.aspx –

+0

@vicage, вероятно, это проблема с правами доступа. Вам необходимо предоставить специальные разрешения пользователю (под которым выполняется веб-приложение) для выполнения кода. По умолчанию вы не можете этого сделать из-за проблемы с безопасностью. Попробуйте запустить пустую командную строку и посмотрите, работает ли она. – oleksii

9

Зачем изобретать колесо? Используйте доступные инструменты, такие как TeamCity и msbuild (также есть много других альтернатив). Я нашел, что Юджин сделал действительно хорошее введение here.

Люди потратили человеко-летние разработки и инструменты для автоматизации полировки. Если бы я был вами, я бы остановился прямо там и осмотрелся.

+3

Чтобы быть честным с парнем, ничто не заставляет вас понять или оценить инструмент больше, чем пытаться сделать это самостоятельно :) –

+0

@Oleksii - Спасибо за ваше предложение. msbuild записывается внутри файла demo.bat. Мне не хватает – vicage

+0

@vicage, что сообщение об ошибке, которое возвращает msbuild? – oleksii

-1

Автоматическая задача, подобная этому, может быть легко выполнена с помощью автоматического горячего ключа. также для автоматической загрузки вы можете использовать команду start и тип браузера по вашему выбору IE Firefox iexplore chrome ~, тогда вы можете автоматизировать загрузку. но обратите внимание, что с некоторыми номерами страниц веб-сайтов может измениться IE.Этот адрес имеет указанный код страницы:

Try to Automate the Build Process for C# Solution through user click

так вместо того, чтобы поместить регулярный адрес в пакете или что когда-либо вы решили использовать вы можете поместить в

https://stackoverflow.com/questions/ ******* *

позволяет ему найти информацию

или вы можете использовать мышь/ключ-бортовой регистратор для автоматизации задачи.

+0

Информация журнал не требуется. поэтому я добавил ниже строки. psi.RedirectStandardOutput = false; – vicage

+0

Автоматическая задача, подобная этому, может быть легко выполнена с помощью автоматического горячего ключа. –

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

  • Нет связанных вопросов^_^