Ejemplo n.º 1
0
        public static NAnt.MSBuild.BuildEngine.Engine CreateMSEngine(NAnt.VSNet.Tasks.SolutionTask solutionTask)
        {
            if (_msbuild != null)
            {
                return(_msbuild);
            }

            try {
                _msbuild = NAnt.MSBuild.BuildEngine.Engine.LoadEngine(solutionTask.Project.TargetFramework);
            } catch (Exception e) {
                throw new BuildException(
                          String.Format(
                              "MSBuild v{0} can't be found. It is needed for building MSBuild projects. VS2005 and later is using MSBuild projects for C# and VB",
                              solutionTask.Project.TargetFramework.Version),
                          Location.UnknownLocation, e);
            }
            _msbuild.UnregisterAllLoggers();

            NAntLoggerVerbosity _verbosity = solutionTask.Verbose ? NAntLoggerVerbosity.Normal : NAntLoggerVerbosity.Minimal;
            NAntLogger          _logger    = NAntLogger.Create(solutionTask.Project.TargetFramework, solutionTask, _verbosity, _msbuild);

            if (_logger != null)
            {
                _msbuild.RegisterLogger(_logger);
            }

            solutionTask.Log(Level.Verbose, "Using MSBuild version {0}.", FileVersionInfo.GetVersionInfo(_msbuild.Assembly.Location).ProductVersion);

            return(_msbuild);
        }
Ejemplo n.º 2
0
        public static Microsoft.Build.BuildEngine.Engine CreateMSEngine(NAnt.VSNet.Tasks.SolutionTask solutionTask)
        {
            if (_msbuild != null)
            {
                return(_msbuild);
            }

            // map current target framework to TargetDotNetFrameworkVersion
            TargetDotNetFrameworkVersion frameworkVersion = GetTargetDotNetFrameworkVersion(
                solutionTask.Project.TargetFramework);

            // use the framework directory as BinPath
            string frameworkDir = ToolLocationHelper.GetPathToDotNetFramework(
                frameworkVersion);

            _msbuild = new Microsoft.Build.BuildEngine.Engine(frameworkDir);
            _msbuild.UnregisterAllLoggers();

            _msbuild.RegisterLogger(
                new NAntLogger(solutionTask,
                               solutionTask.Verbose ? Microsoft.Build.Framework.LoggerVerbosity.Normal : Microsoft.Build.Framework.LoggerVerbosity.Minimal
                               )
                );

            /*
             * foreach (PropertyTask property in solutionTask.CustomProperties) {
             *  string val;
             *  // expand properties in context of current project for non-dynamic properties
             *  if (!property.Dynamic) {
             *      val = solutionTask.Project.ExpandProperties(property.Value, solutionTask.Location);
             *  }
             *  else
             *      val = property.Value;
             *  _msbuild.GlobalProperties.SetProperty(property.PropertyName, val);
             * }
             */

            return(_msbuild);
        }