nant .net-4.5 c#-5.0

Construyendo Proyectos.NET 4.5 con Nant



.net-4.5 c#-5.0 (2)

Podría ser mejor golpear la lista de correo NAnt con sus hallazgos. No está tan activo, pero NAnt definitivamente recibirá una actualización para admitir el nuevo marco. El problema es que Microsoft generalmente cambia las ubicaciones de los archivos con nuevas versiones y las claves de registro que apuntan a esos archivos también cambian, por lo que no es realmente posible admitirlo antes de que haya una versión real de Microsoft. para pruebas.

Lo tengo funcionando actualmente, apuntando a 4.5. En NAnt.exe.config , cambie el nodo <startup> :

<startup> <!-- .NET Framework 4.5 --> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/> <!-- .NET Framework 4.0 --> <supportedRuntime version="v4.0.30319" /> <!-- .NET Framework 2.0 --> <supportedRuntime version="v2.0.50727" /> </startup>

También he agregado un nuevo nodo <framework> (copia de net-4.0 excepto para ensamblajes de referencia):

<framework name="net-4.5" family="net" version="4.5" description="Microsoft .NET Framework 4.5" sdkdirectory="${sdkInstallRoot}" frameworkdirectory="${path::combine(installRoot, ''v4.0.30319'')}" frameworkassemblydirectory="${path::combine(installRoot, ''v4.0.30319'')}" clrversion="4.0.30319" clrtype="Desktop" vendor="Microsoft" > <runtime> <probing-paths> <directory name="lib/common/2.0" /> <directory name="lib/common/neutral" /> </probing-paths> <modes> <strict> <environment> <variable name="COMPLUS_VERSION" value="v4.0.30319" /> </environment> </strict> </modes> </runtime> <reference-assemblies basedir="${path::combine(installRoot, ''v4.0.30319'')}"> <include name="Accessibility.dll" /> <include name="Microsoft.Build.Conversion.v4.0.dll" /> <include name="Microsoft.Build.dll" /> <include name="Microsoft.Build.Engine.dll" /> <include name="Microsoft.Build.Framework.dll" /> <include name="Microsoft.Build.Tasks.v4.0.dll" /> <include name="Microsoft.Build.Utilities.v4.0.dll" /> <include name="Microsoft.CSharp.dll" /> <include name="Microsoft.Data.Entity.Build.Tasks.dll" /> <include name="Microsoft.JScript.dll" /> <include name="Microsoft.Transactions.Bridge.dll" /> <include name="Microsoft.Transactions.Bridge.Dtc.dll" /> <include name="Microsoft.VisualBasic.Activities.Compiler.dll" /> <include name="Microsoft.VisualBasic.Compatibility.Data.dll" /> <include name="Microsoft.VisualBasic.Compatibility.dll" /> <include name="Microsoft.VisualBasic.dll" /> <include name="Microsoft.VisualC.dll" /> <include name="Microsoft.VisualC.STLCLR.dll" /> <include name="mscorlib.dll" /> <include name="System.Activities.Core.Presentation.dll" /> <include name="System.Activities.dll" /> <include name="System.Activities.DurableInstancing.dll" /> <include name="System.Activities.Presentation.dll" /> <include name="System.AddIn.Contract" /> <include name="System.AddIn.dll" /> <include name="System.ComponentModel.Composition.dll" /> <include name="System.ComponentModel.DataAnnotations.dll" /> <include name="System.Configuration.dll" /> <include name="System.Configuration.Install.dll" /> <include name="System.Core.dll" /> <include name="System.Data.DataSetExtensions.dll" /> <include name="System.Data.dll" /> <include name="System.Data.Entity.Design.dll" /> <include name="System.Data.Entity.dll" /> <include name="System.Data.Linq.dll" /> <include name="System.Data.OracleClient.dll" /> <include name="System.Data.Services.Client.dll" /> <include name="System.Data.Services.Design.dll" /> <include name="System.Data.Services.dll" /> <include name="System.Data.SqlXml.dll" /> <include name="System.Deployment.dll" /> <include name="System.Design.dll" /> <include name="System.Device.dll" /> <include name="System.DirectoryServices.dll" /> <include name="System.DirectoryServices.Protocols.dll" /> <include name="System.dll" /> <include name="System.Drawing.Design.dll" /> <include name="System.Drawing.dll" /> <include name="System.Dynamic.dll" /> <include name="System.EnterpriseServices.dll" /> <include name="System.EnterpriseServices.Thunk.dll" /> <include name="System.EnterpriseServices.Wrapper.dll" /> <include name="System.IdentityModel.dll" /> <include name="System.IdentityModel.Selectors.dll" /> <include name="System.IO.Log.dll" /> <include name="System.Management.dll" /> <include name="System.Management.Instrumentation.dll" /> <include name="System.Messaging.dll" /> <include name="System.Net.dll" /> <include name="System.Numerics.dll" /> <include name="System.Runtime.Caching.dll" /> <include name="System.Runtime.DurableInstancing.dll" /> <include name="System.Runtime.Remoting.dll" /> <include name="System.Runtime.Serialization.dll" /> <include name="System.Runtime.Serialization.Formatters.Soap.dll" /> <include name="System.Security.dll" /> <include name="System.ServiceModel.Activation.dll" /> <include name="System.ServiceModel.Activities.dll" /> <include name="System.ServiceModel.Channels.dll" /> <include name="System.ServiceModel.Discovery.dll" /> <include name="System.ServiceModel.dll" /> <include name="System.ServiceModel.Routing.dll" /> <include name="System.ServiceModel.ServiceMoniker40.dll" /> <include name="System.ServiceModel.WasHosting.dll" /> <include name="System.ServiceModel.Web.dll" /> <include name="System.ServiceProcess.dll" /> <include name="System.Transactions.dll" /> <include name="System.Web.Abstractions.dll" /> <include name="System.Web.ApplicationServices.dll" /> <include name="System.Web.DataVisualization.Design.dll" /> <include name="System.Web.DataVisualization.dll" /> <include name="System.Web.dll" /> <include name="System.Web.DynamicData.Design.dll" /> <include name="System.Web.DynamicData.dll" /> <include name="System.Web.Entity.Design.dll" /> <include name="System.Web.Entity.dll" /> <include name="System.Web.Extensions.Design.dll" /> <include name="System.Web.Extensions.dll" /> <include name="System.Web.Mobile.dll" /> <include name="System.Web.RegularExpressions.dll" /> <include name="System.Web.Routing.dll" /> <include name="System.Web.Services.dll" /> <include name="System.Windows.Forms.DataVisualization.Design.dll" /> <include name="System.Windows.Forms.DataVisualization.dll" /> <include name="System.Windows.Forms.dll" /> <include name="System.Workflow.Activities.dll" /> <include name="System.Workflow.ComponentModel.dll" /> <include name="System.Workflow.Runtime.dll" /> <include name="System.WorkflowServices.dll" /> <include name="System.Xaml.dll" /> <include name="System.Xaml.Hosting.dll" /> <include name="System.Xml.dll" /> <include name="System.Xml.Linq.dll" /> </reference-assemblies> <!-- WPF Assemblies --> <reference-assemblies basedir="${path::combine(installRoot, ''v4.0.30319'')}/WPF"> <include name="NaturalLanguage6.dll" /> <include name="NlsData0009.dll" /> <include name="NlsLexicons0009.dll" /> <include name="PenIMC.dll" /> <include name="PresentationCore.dll" /> <include name="PresentationFramework.Aero.dll" /> <include name="PresentationFramework.Classic.dll" /> <include name="PresentationFramework.dll" /> <include name="PresentationFramework.Luna.dll" /> <include name="PresentationFramework.Royale.dll" /> <include name="PresentationHost_v0400.dll" /> <include name="PresentationNative_v0400.dll" /> <include name="PresentationUI.dll" /> <include name="ReachFramework.dll" /> <include name="System.Printing.dll" /> <include name="System.Speech.dll" /> <include name="System.Windows.Input.Manipulations.dll" /> <include name="System.Windows.Presentation.dll" /> <include name="UIAutomationClient.dll" /> <include name="UIAutomationClientsideProviders.dll" /> <include name="UIAutomationProvider.dll" /> <include name="UIAutomationTypes.dll" /> <include name="WindowsBase.dll" /> <include name="WindowsFormsIntegration.dll" /> <include name="wpfgfx_v0400.dll" /> <include name="wpftxt_v0400.dll" /> </reference-assemblies> <reference-assemblies basedir="${environment::get-folder-path(''ProgramFiles'')}/Reference Assemblies/Microsoft/Framework/.NETFramework/v4.5"> <include name="Microsoft.Build.Conversion.v4.0.dll" /> <include name="Microsoft.Build.dll" /> <include name="Microsoft.Build.Engine.dll" /> <include name="Microsoft.Build.Framework.dll" /> <include name="Microsoft.Build.Tasks.v4.0.dll" /> <include name="Microsoft.Build.Utilities.v4.0.dll" /> <include name="Microsoft.CSharp.dll" /> <include name="Microsoft.JScript.dll" /> <include name="Microsoft.VisualBasic.Compatibility.Data.dll" /> <include name="Microsoft.VisualBasic.Comptatibility.dll" /> <include name="Microsoft.VisualBasic.dll" /> <include name="Microsoft.VisualC.dll" /> <include name="Microsoft.VisualC.STLCLR.dll" /> <include name="mscorlib.dll" /> <include name="PresentationBuildTasks.dll" /> <include name="PresentationCore.dll" /> <include name="WindowsBase.dll" /> <include name="PresentationFramework.dll" /> <include name="PresentationFramework.Aero.dll" /> <include name="PresentationFramework.Classic.dll" /> <include name="PresentationFramework.Luna.dll" /> <include name="PresentationFramework.Royale.dll" /> <include name="ReachFramework.dll" /> <include name="System.Activities.Core.Presentation.dll" /> <include name="System.Activities.dll" /> <include name="System.Activities.DurableInstancing.dll" /> <include name="System.Activities.Presentation.dll" /> <include name="System.AddIn.Contract.dll" /> <include name="System.AddIn.dll" /> <include name="System.ComponentModel.Composition.dll" /> <include name="System.ComponentModel.DataAnnotations.dll" /> <include name="System.Configuration.dll" /> <include name="System.Core.dll" /> <include name="System.Data.DataSetExtension.dll" /> <include name="System.Data.dll" /> <include name="System.Data.Entity.Design.dll" /> <include name="System.Data.Entity.dll" /> <include name="System.Data.Linq.dll" /> <include name="System.Data.OracleClient.dll" /> <include name="System.Data.Services.Client.dll" /> <include name="System.Data.Services.Design.dll" /> <include name="System.Data.Services.dll" /> <include name="System.Data.SqlXml.dll" /> <include name="System.Deployment.dll" /> <include name="System.Design.dll" /> <include name="System.Device.dll" /> <include name="System.DirectoryServices.AccountManagement.dll" /> <include name="System.DirectoryServices.dll" /> <include name="System.DirectoryServices.Protocols.dll" /> <include name="System.dll" /> <include name="System.Drawing.Design.dll" /> <include name="System.Drawing.dll" /> <include name="System.EnterpriseServices.dll" /> <include name="System.EnterpriseServices.Thunk.dll" /> <include name="System.EnterpriseServices.Wrapper.dll" /> <include name="System.IdentityModel.dll" /> <include name="System.IdentityModel.Selectors.dll" /> <include name="System.IO.Log.dll" /> <include name="System.Management.dll" /> <include name="System.Management.Instrumentation.dll" /> <include name="System.Messaging.dll" /> <include name="System.Net.dll" /> <include name="System.Numerics.dll" /> <include name="System.Printing.dll" /> <include name="System.Runtime.Caching.dll" /> <include name="System.Runtime.DurableInstancing.dll" /> <include name="System.Runtime.Remoting.dll" /> <include name="System.Runtime.Serialization.dll" /> <include name="System.Runtime.Serialization.Formatters.Soap.dll" /> <include name="System.Security.dll" /> <include name="System.ServiceModel.Activation.dll" /> <include name="System.ServiceModel.Activities.dll" /> <include name="System.ServiceModel.Channels.dll" /> <include name="System.ServiceModel.Discovery.dll" /> <include name="System.ServiceModel.dll" /> <include name="System.ServiceModel.Routing.dll" /> <include name="System.ServiceModel.Web.dll" /> <include name="System.ServiceProcess.dll" /> <include name="System.Speech.dll" /> <include name="System.Transactions.dll" /> <include name="System.Web.Abstractions.dll" /> <include name="System.Web.ApplicationServices.dll" /> <include name="System.Web.DataVisualization.Design.dll" /> <include name="System.Web.DataVisualization.dll" /> <include name="System.Web.dll" /> <include name="System.Web.DynamicData.Design.dll" /> <include name="System.Web.DynamicData.dll" /> <include name="System.Web.Entity.Design.dll" /> <include name="System.Web.Entity.dll" /> <include name="System.Web.Extensions.Design.dll" /> <include name="System.Web.Extensions.dll" /> <include name="System.Web.Mobile.dll" /> <include name="System.Web.RegularExpressions.dll" /> <include name="System.Web.Routing.dll" /> <include name="System.Web.Services.dll" /> <include name="System.Windows.Forms.DataVisualization.Design.dll" /> <include name="System.Windows.Forms.DataVisualization.dll" /> <include name="System.Windows.Forms.dll" /> <include name="System.Windows.Input.Manipulations.dll" /> <include name="System.Windows.Presentation.dll" /> <include name="System.Workflow.Activities.dll" /> <include name="System.Workflow.ComponentModel.dll" /> <include name="System.Workflow.Runtime.dll" /> <include name="System.WorkflowServices.dll" /> <include name="System.Xaml.dll" /> <include name="System.Xml.dll" /> <include name="System.Xml.Linq.dll" /> </reference-assemblies> <task-assemblies> <!-- include MS.NET version-neutral assemblies --> <include name="extensions/net/neutral/**/*.dll" /> <!-- include MS.NET 4.0 specific assemblies --> <include name="extensions/net/4.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 4.0 specific assemblies --> <include name="extensions/common/4.0/**/*.dll" /> </task-assemblies> <tool-paths> <directory name="${sdkInstallRoot}" if="${property::exists(''sdkInstallRoot'')}" /> <directory name="${path::combine(installRoot, ''v4.0.30319'')}" /> </tool-paths> <project> <readregistry property="installRoot" key="SOFTWARE/Microsoft/.NETFramework/InstallRoot" hive="LocalMachine" /> <locatesdk property="sdkInstallRoot" minwinsdkver="v7.0A" minnetfxver="4.0" maxnetfxver="4.0.99999" failonerror="false" /> </project> <tasks> <task name="csc"> <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="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>

Tengo curiosidad por saber si es posible usar Nant para apuntar a .NET 4.5 con el compilador C # 5.0. A partir de este momento, la última versión solo establece el soporte para .NET 4.0.

Intenté descargar la fuente y compilar el .sln con msbuild después de instalar el framework .net 4.5, pero eso produjo una gran cantidad de errores.


nAnt ha lanzado 0.92, así que no está muerto. No tengo idea, sin embargo, de cuándo obtendrán en csc 5.0.

Como mencionó que la construcción de Mono en su entorno nativo es su preocupación real, el Proyecto Mono tiene su propio clon msbuild, llamado xbuild (http://www.mono-project.com/Microsoft.Build). Dicen que no está completa al 100%, pero no dan detalles negativos. Supongo que, a menos que estés haciendo algo por ahí, probablemente funcionará. Recomendaría simplemente intentar invocar xbuild desde la línea de comandos y pasar la solución como una primera prueba rápida de humo.

Saludos, Michael