1

我正在尝试配置 NAnt 以自动化我的构建过程——一旦我完成了这一步,我将集成单元测试。

也许我不完全知道我想要什么,所以如果有完全不同的方式来做这一切,请纠正我......

我想要两个 NAnt 目标,一个用于快速调试构建以确保一切正常且测试通过,另一个目标用于正确编译和发布(它是一个 Web 应用程序项目)

我的问题是...

  1. 我不能让 MSBuild 只编译 dll,它总是用它复制所有的网络应用垃圾(图像、css、.aspx 文件等)。有没有办法阻止这种情况?如果是这样,怎么做?
  2. 当我使用 /t:Compile 进行编译时,它仍在为 dll 创建 .pdb 文件。它是否正确?我认为这些是用于调试器的,因此在进行发布编译时不应该出现?

这是我的完整版本编译(发布)的 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>

谢谢你的帮助!

PS 如果有更简单的方法,我不必使用 msbuild。我尝试先使用 CSC,但我无法解决我遇到的所有引用问题。非常欢迎提出建议

4

1 回答 1

4

我建议不要直接调用 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-configurationRelease构建 PDB。这取决于您如何在 Visual Studio 中设置项目 - 您仍然可以为优化的发布版本构建 PDB。

编辑:至于“额外的垃圾”的东西 - 它会做任何 Visual Studio 中的构建。如果您可以在 VS 中随意切换各种选项,那么 NAnt/MSBuild 也应该可以正常工作。

于 2008-11-03T13:11:58.423 回答