Jak zautomatyzować tworzenie Visual Studio?

Jak zamienić kompilację Visual Studio wykonywaną w IDE w skrypt, który można uruchomić z linii poleceń?

Author: Peter Mortensen, 2008-08-24

11 answers

Z VS2008 możesz to zrobić:

devenv solution.sln /build configuration
 30
Author: Agnel Kurian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-29 06:38:23
\Windows\Microsoft.NET\Framework\[YOUR .NET VERSION]\msbuild.exe

Wiele parametrów wiersza poleceń, ale najprostszym jest po prostu:

msbuild.exe yoursln.sln
 29
Author: FlySwat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-23 20:46:26

Najprostszy sposób: przejdź do katalogu zawierającego rozwiązanie lub plik projektu i uruchom msbuild (zakładając, że masz Visual Studio 2005 lub nowszy).

Bardziej elastyczne sposoby:

  • Czytaj na MSBuild odniesienie . Jest mnóstwo personalizacji, szczególnie raz zainstalowałeś MSBuild Community Tasks Project .
  • Użyj NAnt . Istnieje dłużej niż MSBuild i ma więcej wsparcie społeczności, ale wymaga od Ciebie aby rozpocząć projekt Plik z scratch, zamiast rozszerzać istniejącego, stworzonego przez Visual Studio.
 4
Author: Sören Kuklau,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-13 11:32:43

NAnt oraz MSBuild są najpopularniejszymi narzędziami do automatyzacji kompilacji w . NET i można tam znaleźć dyskusję na temat zalet / wad każdego z nich w pytaniu przepełnienie stosu najlepsze narzędzie do budowania. NET.

 4
Author: alanl,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:54:26

Zajrzyj do narzędzia build NAnt lub MSBuild . Uważam, że MSBuild jest narzędziem do budowania Visual Studio 2005 i nowszych. Jestem jednak fanem NAnt...

 3
Author: mmattax,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-13 11:14:37

Oto skrypt, którego używam, aby całkowicie zautomatyzować kompilację linii poleceń konfiguracji x86 i x64 dla tego samego rozwiązania za pomocą skryptów wsadowych.

Jest to oparte na DevEnv.exe działa, jeśli masz projekt instalacyjny w swoim build (msbuild nie obsługuje projektów instalacyjnych).

Zakładam, że Twoja konfiguracja to 32-bitowy Windows 7 z instalacją Visual Studio 2010 przy użyciu natywnego kompilatora x86 i kompilatora x64 cross. Jeśli używasz 64-bitowego systemu windows, może być konieczna zmiana x86_amd64 do amd64 w skrypcie wsadowym w zależności od konfiguracji. Przy założeniu, że Visual Studio jest zainstalowane w plikach programu , a Twoje rozwiązanie znajduje się w D:\MySoln

Utwórz plik o nazwie buildall.bat i dodaj to do niego:

D:
cd "D:\MySoln"

if "%1" == "" goto all
if %1 == x86 goto x86
if %1 == x64 goto x64

:x86
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 < crosscompilex86.bat
goto eof

:x64
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86_amd64 < crosscompilex64.bat
goto eof

:all
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 < crosscompilex86.bat
if %ERRORLEVEL% NEQ 0 goto eof
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86_amd64 < crosscompilex64.bat
goto eof

:eof
pause

Teraz utwórz jeszcze 2 Skrypty wsadowe:

crosscompilex86bat , aby zbudować wersję Release kompilacji x86 i dołączyć to

devenv MySoln.sln /clean "Release|x86"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
devenv MySoln.sln /rebuild "Release|x86"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%

crosscompilex64bat do budowy Wydanie wersji kompilacji x64 i dołączenie tego

devenv MySoln.sln /clean "Release|x64"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
devenv MySoln.sln /rebuild "Release|x64"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%

Teraz umieść wszystkie 3 pliki wsadowe w folderze rozwiązania wraz z MySoln.sln. Możesz zbudować zarówno wersję x86, jak i x64, tworząc skrót na pulpicie, który uruchamia następujące polecenia:

  • Build All - > D:\MySoln\buildall.bat
  • Build X86 Release Only - > D:\MySoln\buildall.bat x86
  • Build x64 Release Only - > D:\MySoln\buildall.bat x64

Jeśli używasz innej konfiguracji, takiej jak AnyCPU itp., musisz odpowiednio dostosować powyższe Skrypty.

 3
Author: rboy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-18 18:50:04

Spójrz na UppercuT. Ma dużo huku za swoje pieniądze i robi to, czego szukasz i wiele więcej.

UppercuT używa NAnt do budowania i jest szalenie łatwym w użyciu frameworkiem do budowania.

Automatyczne tworzenie jest tak proste, jak (1) Nazwa rozwiązania, (2) ścieżka kontroli źródła, (3) Nazwa firmy dla większości projektów!

Http://projectuppercut.org/

Kilka dobrych wyjaśnień tutaj:

 2
Author: ferventcoder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-09 18:45:31

Oto mój plik wsadowy używając msbuild dla VS 2010 Konfiguracja debugowania:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" 
iTegra.Web.sln /p:Configuration=Debug /clp:Summary /nologo
 2
Author: GSoft Consulting,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-27 04:30:34

Począwszy od Visual Studio 2005 , wszystkie pliki projektu (przynajmniej dla projektów opartych na. Net) są plikami MSBuild , więc możesz wywołać MSBuild w wierszu poleceń i przekazać mu plik projektu.

Najważniejsze jest to, że musisz użyć "języka skryptowego budowania", takiego jak NAnt lub MSBuild (są inne, ale są to obecnie główne), jeśli chcesz mieć prawdziwą kontrolę nad procesem budowania.

 2
Author: Scott Dorman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-30 08:34:01

Musiałem to zrobić dla projektu C++ w Visual Studio 2003 więc nie wiem, jak istotne jest to dla późniejszej wersji visual studio:

W katalogu, w którym tworzony jest plik wykonywalny, znajduje się plik BuildLog.htm. Otwórz ten plik w przeglądarce, a następnie dla każdej sekcji, takiej jak:

Creating temporary file "c:\some\path\RSP00003C.rsp" with contents
[
/D "WIN32" /D "_WINDOWS" /D "STRICT" /D "NDEBUG" ..... (lots of other switches)
.\Project.cpp
.\Another.cpp
.\AndAnother.cpp
".\And Yet Another.cpp"
]
Creating command line "cl.exe @c:\some\path\RSP00003C.rsp /nologo"

Utwórz .plik rsp z zawartością między nawiasami kwadratowymi (ale bez nawiasów kwadratowych) i nazywaj go jak chcesz. Wydaje mi się, że pamiętam problemy z ścieżki bezwzględne, więc może być konieczne upewnienie się, że wszystkie ścieżki są względne.

Następnie w skrypcie budowania Dodaj wiersz poleceń z pliku BuildLog.htm ale z Twoim .nazwa pliku rsp:

cl.exe @autobuild01.rsp /nologo

(zauważ, że będzie też link.sekcja exe oraz cl.exe)

 1
Author: Sam Hasler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-23 21:23:27

Prostszym sposobem jest zmiana konfiguracji projektów i rozwiązań 2015: Przejdź do zakładki Narzędzia - > Opcje -> projekty i rozwiązania -> Build and Run - > On Run, gdy projekty są nieaktualne (wybierz Always build). VOILA!

Teraz IDE automatycznie zbuduje Twój projekt, gdy go uruchomisz (F5). Mam nadzieję, że to pomoże, wszelkie opinie są mile widziane.

 -1
Author: A. Lyoussi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-27 12:57:51