Podría ser mejor para golpear NAnt mailing list con sus conclusiones. No es tan activo, pero NAnt definitivamente recibirá una actualización para apoyar el nuevo marco. El problema es que Microsoft generalmente cambia las ubicaciones de los archivos con una nueva versión y las claves de registro que apuntan a esos archivos también cambian, por lo que no es posible admitirlo antes de que haya una versión real de Microsoft. para las pruebas.
Lo tengo funcionando actualmente, con una orientación de 4.5. En NAnt.exe.config
, cambiar el <startup>
nodo:
<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 añadido un nuevo <framework>
nodo (copia de net-4,0 exclusión de conjuntos 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>
Estoy un poco confundido ya que C# 5.0 es parte de .NET 4.5 Framework. Si instaló .NET 4.5, ¿no puede usar msbuild para compilar? –
Sí, definitivamente puede usar MSBuild ... en Windows. Pero si está creando un proyecto Mono en Linux o MacOS, entonces MSBuild no estará disponible :) –
He agregado un fragmento del archivo de configuración que me funciona. – skolima