{"id":457,"date":"2010-05-07T18:52:58","date_gmt":"2010-05-07T17:52:58","guid":{"rendered":"http:\/\/netrix.org.pl\/?p=457"},"modified":"2010-05-26T14:37:49","modified_gmt":"2010-05-26T13:37:49","slug":"msbuild-czyli-windowsowy-odpowiednik-make","status":"publish","type":"post","link":"https:\/\/netrix.org.pl\/index.php\/2010\/05\/07\/msbuild-czyli-windowsowy-odpowiednik-make\/","title":{"rendered":"MSBuild, czyli windowsowy odpowiednik make"},"content":{"rendered":"<p>Korzystaj\u0105c z MS Visual Studio, czasami przyda\u0142aby si\u0119 mo\u017cliwo\u015b\u0107 skompilowania ca\u0142ej solucji korzystaj\u0105c z wiersza polece\u0144 (cmd\/PowerShell), tak jak ma to miejsce w przypadku Unixowego <strong>make<\/strong>. Okazuje si\u0119, \u017ce mo\u017cna to zrobi\u0107, a s\u0142u\u017cy do tego konsolowy programik <strong>MSBuild<\/strong>. Znajduje si\u0119 on w jednym z katalog\u00f3w:<\/p>\n<p><em>C:\\Windows\\Microsoft.NET\\Framework\\[wersja]<\/em> lub<br \/>\n<em>C:\\Windows\\Microsoft.NET\\Framework64\\[wersja]<\/em> (wersja x64).<\/p>\n<p>W ka\u017cdym z katalog\u00f3w powy\u017cej wersji 1.1 (czyli od 2.0) znajduj\u0105 si\u0119 kompilatory wszystkich j\u0119zyk\u00f3w zarz\u0105dzanych oraz kilka dodatkowych narz\u0119dzi w tym w\u0142a\u015bnie MSBuild (dla ciekawych, kompilator cl.exe j\u0119zyka C++ znajduje si\u0119 pod \u015bcie\u017ck\u0105 <em>[katalog Visual Studio]\\VC\\bin<\/em>).<\/p>\n<p>Pytanie: dlaczego por\u00f3wna\u0142em <strong>MSBuild<\/strong> do <strong>make<\/strong>? G\u0142\u00f3wnie ze wzgl\u0119du na spos\u00f3b u\u017cycia, czyli &#8220;odpal i id\u017a na kaw\u0119&#8221; :). Aby zbudowa\u0107 solucj\u0119 wystarczy, &#8220;by\u0107&#8221; w katalogu z plikiem .sln i uruchomi\u0107 MSBuild, wtedy program skorzysta z domy\u015blnych ustawie\u0144 zapisanych w pliku solucji. Mo\u017cna dodatkowo poda\u0107 jako argumenty <\/p>\n<p><em>-p:&#8221;Configuration=Release;Architecture=x64&#8243;<\/em><\/p>\n<p>wtedy ca\u0142a solucja zostanie zbudowana zgodnie z ustawieniami Release pod platform\u0119 64-bitow\u0105. Mo\u017cna r\u00f3wnie\u017c budowa\u0107 solucje z innego katalogu, aby to zrobi\u0107 trzeba poda\u0107 \u015bcie\u017ck\u0119 do pliku .sln.<\/p>\n<p>Ca\u0142y wyci\u0105g budowania aplikacji opatrzony jest kolorami, wi\u0119c nie trzeba specjalnie doszukiwa\u0107 si\u0119 poszczeg\u00f3lnych etap\u00f3w. Wi\u0119cej informacji mo\u017cna znale\u017a\u0107 po nast\u0119puj\u0105cymi linkami:<\/p>\n<p><a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ee662426.aspx\">http:\/\/msdn.microsoft.com\/en-us\/library\/ee662426.aspx<\/a><br \/>\n<a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms164311.aspx\">http:\/\/msdn.microsoft.com\/en-us\/library\/ms164311.aspx<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Korzystaj\u0105c z MS Visual Studio, czasami przyda\u0142aby si\u0119 mo\u017cliwo\u015b\u0107 skompilowania ca\u0142ej solucji korzystaj\u0105c z wiersza polece\u0144 (cmd\/PowerShell), tak jak ma to miejsce w przypadku Unixowego make. Okazuje si\u0119, \u017ce mo\u017cna to zrobi\u0107, a s\u0142u\u017cy do tego konsolowy programik MSBuild. Znajduje si\u0119 on w jednym z katalog\u00f3w: C:\\Windows\\Microsoft.NET\\Framework\\[wersja] lub C:\\Windows\\Microsoft.NET\\Framework64\\[wersja] (wersja x64). W ka\u017cdym z katalog\u00f3w [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[46],"tags":[82,183,54],"_links":{"self":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/457"}],"collection":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/comments?post=457"}],"version-history":[{"count":16,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/457\/revisions"}],"predecessor-version":[{"id":523,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/457\/revisions\/523"}],"wp:attachment":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/media?parent=457"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/categories?post=457"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/tags?post=457"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}