2014-06-19 5 views
-1

Создал файл C#. Обычно мы строим его с помощью VS IDE. Но я хочу построить его с помощью ms-build.Как создать файл с помощью msbuild

У меня есть один файл .bat и .xml. Что именно я должен делать с .xml-файлом для успешного запуска этого файла .cs.

Мой .xml файл

<property environment="env" /> 
<property name="tools.dir" location="${env.TOOLS_DIR}"/> 

<target name="Buildproject" > 
<echo message="I am building project"/> 
</target> 

<target name="runtests" depends="Buildproject" description="This is my first ant target"> 
<echo message="Running tests"/> 
</target> 

<target name="publish" depends="runtests"> 
<echo message="Publish artifact"/> 
</target> 

Мой .bat файл

SET WORKSPACE =% ~ dp0 SET TOOLS_DIR = SET инструмент сборки BUILD_FILE = sample_build.xml @echo off echo WORKSPACE:% WORKSPACE% echo TOOLS_DIR:% TOOLS_DIR% echo BUILD_FILE:% BUILD_FILE% % TOOLS_DIR%/апач муравей/бен/муравей -Divy.cache.ttl.default = вечна -buildfile% BUILD_FILE%

+0

Этот XML-файл не является файлом сборки. Он не содержит никакой информации о проекте и способах его создания. Если у вас есть подходящий файл MSBuild, вы просто запустите 'msbuild.exe' и укажите его как аргумент командной строки. –

ответ

0

Ваш файл XML не является правильным. Похоже, может быть, файл nant или другая спецификация.

Это ваш самый базовый файл .proj (msbuild definition).

Сохранить (в том же каталоге, что и файл .sln) как "MyMsbuildDef.proj"

<?xml version="1.0" encoding="utf-8"?> 
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="AllTargetsWrapped"> 
    <PropertyGroup> 
     <!-- Always declare some kind of "base directory" and then work off of that in the majority of cases --> 
     <WorkingCheckout>.</WorkingCheckout> 
    </PropertyGroup> 

    <Target Name="AllTargetsWrapped"> 
     <CallTarget Targets="BuildItUp" /> 
    </Target> 


    <Target Name="BuildItUp" > 
     <MSBuild Projects="$(WorkingCheckout)\MySolution_Or_MyProject_File.sln" Targets="Build" Properties="Configuration=$(Configuration)"> 
      <Output TaskParameter="TargetOutputs" ItemName="TargetOutputsItemName"/> 
     </MSBuild> 
     <Message Text="BuildItUp completed" /> 
    </Target> 

</Project> 

Очевидно, что изменение "MySolution_Or_MyProject_File.sln" к вашему .sln имени.

Теперь создайте .bat файл с именем "MyMsbuildCallIt.bat" и поместить это в:

REM set __msBuildDir=%WINDIR%\Microsoft.NET\Framework\v2.0.50727 
REM set __msBuildDir=%WINDIR%\Microsoft.NET\Framework\v3.5 
set __msBuildDir=%WINDIR%\Microsoft.NET\Framework\v4.0.30319 

call "%__msBuildDir%\msbuild.exe" /target:AllTargetsWrapped "MyMsbuildDef.proj" /p:Configuration=Debug;FavoriteFood=Popeyes /l:FileLogger,Microsoft.Build.Engine;logfile=MyMsbuildDef_Debug.log 
call "%__msBuildDir%\msbuild.exe" /target:AllTargetsWrapped "MyMsbuildDef.proj" /p:Configuration=Release;FavoriteFood=Popeyes /l:FileLogger,Microsoft.Build.Engine;logfile=MyMsbuildDef_Release.log 


set __msBuildDir= 

и запустить bat-файл.

Это ваш самый простой сценарий msbuild.

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