我是NAnt的新手并试图建立一个构建文件来构建一些.Net 4.0项目并运行一些NUnit测试。其中一个项目包含EF4.0数据模型和上下文,我遇到了一个问题,即使System.Data.Entity.dll引用包含在NAnt配置中,也不包含其中的System.Data类正在构建(System.Data.EntityClient,System.Data.Objects等)。我正在使用NAnt 0.91 Alpha 2.其他人遇到这个或者有任何想法如何解决它?在下面构建文件。
感谢。
<?xml version="1.0" encoding="utf-8" ?>
<project name="ClinicalModel">
<property name="src.dir" value="" />
<property name="output.dir" value="bin/debug" />
<property name="entitysrc" value="..\Entities" />
<property name="debug" value="true" overwrite="false" />
<property name="nant.settings.currentframework" value="net-4.0" />
<property name="framework-get-assembly-directory" value="${framework::get-assembly-directory('net-4.0')}" />
<property name="dotNetReferenceAssemblyPath" value="${framework-get-assembly-directory}\" />
<target name="clean" description="clean up already built files">
<delete file="${output.dir}/Entities.dll" failonerror="false" />
<delete file="${output.dir}/Model.dll" failonerror="false" />
</target>
<target name="build_entities" description="build entities">
<csc target="library" output="${output.dir}\Entities.dll" debug="${debug}">
<sources basedir="${entitysrc}">
<include name="**/*.cs" />
</sources>
</csc>
</target>
<target name="build" depends="build_entities" description="build model">
<csc target="library" output="${output.dir}\Model.dll" debug="${debug}">
<sources>
<include name="**\*.cs" />
</sources>
<references basedir="${output.dir}">
<include name="**\*.dll" />
</references>
</csc>
</target>
</project>
答案 0 :(得分:2)
这可能不是您正在寻找的解决方案,但我建议让msbuild进行实际的构建工作。由于您不想构建整个解决方案,因此最终会向msbuild进行4次调用(每个项目需要构建一次)。以下是我的根构建脚本的片段:
<property name="common.msbuild2010" value="C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MsBuild.exe" />
<property name="common.buildType" value="Debug" />
...
<setenv>
<variable name="DevEnvDir" value="C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\"/>
</setenv>
<exec program="${common.msbuild2010}" commandline=""${local.someCsProjName}" /t:Rebuild /p:Configuration=${common.buildType}" />