Нант отказывается использовать .Net 3.5 - PullRequest
0 голосов
/ 17 августа 2010

Я пытаюсь использовать NANT 0,90 с Visual Studio 2008, .net 3.5 проекта.Скрипт nant вызывается командой city.Здесь нет ничего сложного.

<?xml version="1.0"?>
<project name="IPSA System" default="build" basedir=".">
  <property name="nant.settings.currentframework" value="net-3.5"/>
  <msbuild project="FS.IPSA.WebAdmin\FS.IPSA.WebAdmin.csproj">
    <arg value="/property:TeamOutPath=Release\FS.IPSA.WebAdmin" />
    <property name="TeamOutPath" value="Release\FS.IPSA.WebAdmin" />
  </msbuild>
</project>

Проблема, с которой я столкнулся, заключается в том, что nant настаивает на вызове компилятора .net 2.0, а не 3.5.Я думал, что введение значения nant.settings.currentframework в скрипт должно было заставить версию фреймворка.Это не похоже на случай.Что еще может быть причиной проблемы?

Ответы [ 2 ]

1 голос
/ 19 августа 2010

Возможно, задача msbuild не может собрать решения против net 2008 (например, называется неправильная версия msbuild.exe).

Как насчет использования что-то вроде этого:

    <!-- msbuild from .net 2.0 is unable to build vs.net 2008 solutions. Let's try to find .net 3.5 version of msbuild -->      
    <property name ="msbuild.exe" value="msbuild"/> <!-- default-->
    <property name="windows.dir" value="${environment::get-variable('windir')}"/>
    <property name="net3.5.dir" value="${windows.dir}/Microsoft.NET/Framework/v3.5"/>
    <if test="${directory::exists(net3.5.dir)}">
        <property name="msbuild.exe" value="${net3.5.dir}/msbuild.exe"/>
    </if>

    <!-- current nant msbuild task is unable to build VS.NET 2008 solutions -->
    <!-- let's try run correct msbuild.exe via the exec task -->
    <exec program ="${msbuild.exe}" verbose="true">
        <arg value="/property:TeamOutPath=Release\FS.IPSA.WebAdmin" />
        <arg value="FS.IPSA.WebAdmin\FS.IPSA.WebAdmin.csproj"/>
    </exec>
0 голосов
/ 06 сентября 2010

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

...