0
我對NAnt很陌生,試圖設置一個構建文件來構建一些.Net 4.0項目並運行一些NUnit測試。其中一個項目包含一個EF4.0數據模型和上下文,並且我遇到了一個問題,即使NAnt配置中包含了System.Data.Entity.dll引用,它所包含的任何System.Data類都不會正在被構建(System.Data.EntityClient,System.Data.Objects等)找到。我正在使用NAnt 0.91 Alpha 2.任何人遇到此問題或有任何想法如何解決它?在下面構建文件。NAnt和System.Data.Entity.dll
謝謝。
<?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>
這並不能真正回答您的問題,但我很想知道您爲什麼使用NAnt實際執行該建築。我一直使用NAnt來做很多事情(Build,FxCop,NUnit,移動內置文件等),但是對於實際構建,我在解決方案文件上運行適當版本的msbuild。擁有漂亮的sln和csproj文件似乎太痛苦了,但是忽略它們,基本上必須在NAnt腳本中重現它們。我錯過了什麼嗎?如果你想走這條路線,我可以發佈示例代碼。 – 2011-02-08 18:12:05
我們正在嘗試與Atlassian Bamboo整合,這似乎不太支持MSBuild。我最初嘗試使用NAnt的msbuild擴展(NAntContrib),但由於一些T4模板沒有正確處理而導致其他一些中斷。另外,我們實際上只是試圖以這種方式來測試我們的數據層,並且解決方案包含了不需要爲單元測試而構建的Web項目和Web服務項目,所以我們只對解。 – JMorgan 2011-02-08 18:24:31