2009-10-02 6 views
2

Comment ajouter une structure cible silverlight-3.0 à NAnt? J'ai essayé de modifier le fichier nant.exe.config, basé sur le profil silverlight-2.0, mais cela échoue lors de la compilation avec CS0518: Type "System.Object" not defined or imported [message d'erreur traduit du polonais]. En outre, la cible silverlight-2.0 ne semble pas définir la compilation conditionnelle "SILVERIGHT" comme le fait Visual Studio, ce qui complique l'écriture de bibliothèques multi-cibles. Est-ce que quelqu'un ici construit des solutions cibles mixtes (avec des bibliothèques pour framework .NET complet et Silverlight)?Puis-je cibler Silverlight 3.0 en utilisant NAnt?

Répondre

1

Vous pouvez télécharger la version NAnt 0.91 Alpha 2, qui inclut le support pour le framework net-4.0. Ce framework fonctionne pour la compilation de solutions avec les applications Silverlight 4.

J'ai une solution qui inclut une application Silverlight 4 et un projet web .NET 3.5 ASP.NET et j'utilise le framework alpha-net release 4.0 pour compiler et ça fonctionne très bien. Alternativement, toujours en utilisant la version alpha de Nant, si vous avez juste besoin de compiler une application SilverLight 4 avec Nant et vous pouvez récupérer la balise framework silverlight-4.0 de Nant CVS here. et ajouter cette balise à votre fichier Nant.exe.config fichier.

0

@skolima ... cela pourrait-il être que vous ne pointez pas vers les bons répertoires? En fait, je me pose cette question moi-même, car je travaille avec SL3 et je voudrais faire de l'automatisation de build en utilisant nAnt. En se demandant aussi, en se basant sur d'autres messages ici sur SO, vous aurez peut-être besoin d'éditer le fichier nant.exe.config pour ajouter le "profil" pour silverlight-3 là aussi.

3

Il semble que Richard B était sur la bonne voie avec les modifications Nant.exe.config. J'ai ajouté le morceau suivant de XML au fichier de configuration et j'ai pu définir la propriété nant.settings.currentframework à silverlight-3.0 dans mon fichier de construction principal, et les choses fonctionnaient comme un charme. (Note: je l'ai mis dans le fichier de configuration sur la ligne 775 juste après la définition de cadre silverlight-2.0). Espérons que cela aide

 <framework 
       name="silverlight-3.0" 
       family="silverlight" 
       version="3.0" 
       description="Microsoft Silverlight 3.0" 
       sdkdirectory="${path::combine(sdkInstallRoot, 'bin')}" 
       frameworkdirectory="${path::combine(installRoot, 'v3.5')}" 
       frameworkassemblydirectory="${environment::get-folder-path('ProgramFiles')}/Microsoft Silverlight/3.0.40818.0" 
       clrversion="2.0.50727" 
       > 
       <runtime> 
        <modes> 
         <strict> 
          <environment> 
           <variable name="COMPLUS_VERSION" value="v2.0.50727" /> 
          </environment> 
         </strict> 
        </modes> 
       </runtime> 
       <reference-assemblies basedir="${environment::get-folder-path('ProgramFiles')}/Microsoft Silverlight/3.0.40818.0"> 
        <include name="agclr.dll" /> 
        <include name="Microsoft.VisualBasic.dll" /> 
        <include name="mscorlib.dll" /> 
        <include name="System.Core.dll" /> 
        <include name="System.dll" /> 
        <include name="System.Silverlight.dll" /> 
        <include name="System.Xml.dll" /> 
     <include name="System.Windows.dll" /> 
     <include name="System.Windows.Browser.dll" /> 
       </reference-assemblies> 
       <task-assemblies> 
        <!-- include MS.NET version-neutral assemblies --> 
        <include name="extensions/net/neutral/**/*.dll" /> 
        <!-- include MS.NET 2.0 specific assemblies --> 
        <include name="extensions/net/2.0/**/*.dll" /> 
        <!-- include MS.NET specific task assembly --> 
        <include name="NAnt.MSNetTasks.dll" /> 
        <!-- include MS.NET specific test assembly --> 
        <include name="NAnt.MSNet.Tests.dll" /> 
        <!-- include .NET 2.0 specific assemblies --> 
        <include name="extensions/common/2.0/**/*.dll" /> 
       </task-assemblies> 
       <tool-paths> 
        <directory name="${path::combine(sdkInstallRoot, 'bin')}" 
         if="${property::exists('sdkInstallRoot')}" /> 
        <directory name="${path::combine(installRoot, 'v2.0.50727')}" /> 
        <directory name="${environment::get-folder-path('ProgramFiles')}/Microsoft Silverlight/3.0.40818.0" /> 
       </tool-paths> 
       <project> 
        <readregistry 
         property="installRoot" 
         key="SOFTWARE\Microsoft\.NETFramework\InstallRoot" 
         hive="LocalMachine" /> 
        <readregistry 
         property="sdkInstallRoot" 
         key="SOFTWARE\Microsoft\.NETFramework\sdkInstallRootv2.0" 
         hive="LocalMachine" 
         failonerror="false" /> 
       </project> 
       <tasks> 
        <task name="csc"> 
         <attribute name="noconfig">true</attribute> 
         <attribute name="nostdlib">true</attribute> 
         <attribute name="supportsnowarnlist">true</attribute> 
         <attribute name="supportswarnaserrorlist">true</attribute> 
         <attribute name="supportskeycontainer">true</attribute> 
         <attribute name="supportskeyfile">true</attribute> 
         <attribute name="supportsdelaysign">true</attribute> 
         <attribute name="supportsplatform">true</attribute> 
         <attribute name="supportslangversion">true</attribute> 
        </task> 
        <task name="vbc"> 
         <attribute name="nostdlib">true</attribute> 
         <attribute name="supportsdocgeneration">true</attribute> 
         <attribute name="supportsnostdlib">true</attribute> 
         <attribute name="supportsnowarnlist">true</attribute> 
         <attribute name="supportskeycontainer">true</attribute> 
         <attribute name="supportskeyfile">true</attribute> 
         <attribute name="supportsdelaysign">true</attribute> 
         <attribute name="supportsplatform">true</attribute> 
         <attribute name="supportswarnaserrorlist">true</attribute> 
        </task> 
        <task name="jsc"> 
         <attribute name="supportsplatform">true</attribute> 
        </task> 
        <task name="vjc"> 
         <attribute name="supportsnowarnlist">true</attribute> 
         <attribute name="supportskeycontainer">true</attribute> 
         <attribute name="supportskeyfile">true</attribute> 
         <attribute name="supportsdelaysign">true</attribute> 
        </task> 
        <task name="resgen"> 
         <attribute name="supportsassemblyreferences">true</attribute> 
         <attribute name="supportsexternalfilereferences">true</attribute> 
        </task> 
        <task name="delay-sign"> 
         <attribute name="exename">sn</attribute> 
        </task> 
        <task name="license"> 
         <attribute name="exename">lc</attribute> 
         <attribute name="supportsassemblyreferences">true</attribute> 
        </task> 
       </tasks> 
      </framework> 
+1

Thx @ckramer ... Je vais devoir essayer votre script à un moment donné ... Pouvez-vous poster votre fichier de compilation nAnt afin que nous puissions voir votre utilisation (en particulier pour créer le fichier xap?) –

+0

et peuvent être définis sur "$ {environment :: get-folder-path ('ProgramFiles')}/Assemblées de référence/Microsoft/Framework/Silverlight/v3.0" si vous utilisez un Silverlight v4 et avez installé le SDK Silverlight 3. Le répertoire d'assemblage SL3 dans l'exemple de ckramer n'existe pas lorsque SL4 est installé. –

Questions connexes