Беды в командной строке NAnt и MSBuild - PullRequest
1 голос
/ 03 ноября 2008

Я пытаюсь настроить NAnt для автоматизации моего процесса сборки - как только этот шаг будет завершен, я буду интегрировать модульные тесты.

Возможно, я точно не знаю, чего хочу, поэтому, пожалуйста, поправьте меня, если есть совершенно другой способ сделать все это ...

Мне нужны две цели NAnt, одна для быстрой отладки, чтобы убедиться, что все работает и тесты пройдены, и другая цель для правильной компиляции и публикации (это проект веб-приложения)

Мои проблемы ...

  1. Я не могу заставить MSBuild скомпилировать только библиотеки DLL, он всегда копирует всю ненужную информацию веб-приложения (изображения, CSS, ASPX-файлы и т. Д.). Есть ли способ остановить это? Если да, то как?
  2. Когда я компилирую, используя / t: Compile, он все еще создает файлы .pdb для dll. Это правильно? Я думал, что они были для отладчика, и поэтому не должны присутствовать при компиляции релиза?

вот моя цель NAnt для полной компиляции релиза (публикация):

<target name="build.deploy" description="Compile Web Site." depends="init">
    <exec basedir="." program="C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe" commandline=" MyProj/Interface/Interface.csproj /nologo
        /t:Compile
        /t:ResolveReferences;_CopyWebApplication
        /p:OutDir=../../deploy/bin/
        /p:WebProjectOutputDir=../../deploy/;AspNetConfiguration=Release"
        workingdir="." failonerror="true" />
</target>

Спасибо за помощь!

P.S. Мне не нужно использовать msbuild, если есть более простой способ. Сначала я попытался использовать CSC, но не смог решить все проблемы со ссылками, которые я получал. Предложения очень приветствуются

1 Ответ

4 голосов
/ 03 ноября 2008

Вместо непосредственного вызова MSBuild я бы предложил использовать NAnt-Contrib msbuild task .

Например, в моем проекте Protocol Buffers у меня есть это:

<target name="build"
        description="Builds all C# code">
  <msbuild project="${src}/ProtocolBuffers.sln">
    <property name="Configuration"
              value="${build-configuration}" />
  </msbuild>
</target>

Когда build-configuration равен Release, он не создает PDB. Однако это зависит от того, как вы настроили проект в Visual Studio - вы можете по-прежнему создавать PDB для оптимизированной версии выпуска.

РЕДАКТИРОВАТЬ: Что касается "лишних" вещей - он будет делать то, что делает сборка в Visual Studio. Если вы можете бездельничать в VS, чтобы переключать различные параметры так, как вы этого хотите, то и в NAnt / MSBuild он тоже должен работать.

...