2010-08-17 21 views
0

J'essaie d'utiliser nant 0.90 avec un projet studio visuel 2008, .net 3.5. Le script nant est appelé par la ville de l'équipe. Rien de trop complexe ici.Nant refusant d'utiliser .Net 3.5

<?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> 

Le problème que je rencontre est que nant insiste pour appeler le .net 2.0 plutôt que le 3.5. Je pensais que mettre la valeur nant.settings.currentframework dans le script était supposé forcer la version du framework. Cela ne semble pas être le cas. Quoi d'autre pourrait causer le problème?

Répondre

0

En fin de compte, il se trouve que Nant n'a pas été casuing le problème, il appelait la version correcte de msbuild, mais msbuild appelait la mauvaise version de csc .EXE. Je n'ai pas découvert pourquoi il le fait, mais il semble que ce soit msbuild, pas nant.

1

La tâche msbuild est peut-être incapable de générer des solutions vs.net 2008 (par exemple, une mauvaise version de msbuild.exe est appelée).

Qu'en est-il d'utiliser quelque chose comme ceci:

<!-- 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>