UpdateManifestForBrowserApplication.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / BuildTasks / Microsoft / Build / Tasks / Windows / UpdateManifestForBrowserApplication.cs / 1 / UpdateManifestForBrowserApplication.cs

                            /////////////////////////////////////////////////////////////////////////////// 
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// UpdateManifestForBrowserApplication.cs 
//
// Update application manifest for browser-hosted application. 
// 
// spec: http://avalon/app/Compilation/Avalon-MSBUILD%20Tasks.doc
// 
// vivekd Created             06/17/2004
// weibz  update and cleanup  06/10/2005
//
/////////////////////////////////////////////////////////////////////////////// 

using System; 
using System.IO; 
using System.Diagnostics;
using System.Runtime.InteropServices; 
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
using Microsoft.Build.Tasks;
using System.Xml; 
using System.Xml.XPath;
using Microsoft.Build.Tasks.Windows; 
using System.Collections; 

using MS.Utility; 
using MS.Internal.Tasks;

// Since we disable PreSharp warnings in this file, PreSharp warning is unknown to C# compiler.
// We first need to disable warnings about unknown message numbers and unknown pragmas. 
#pragma warning disable 1634, 1691
 
 
namespace Microsoft.Build.Tasks.Windows
{ 
    #region Manifest Creator Task class

    /// 
    /// Class of UpdateManifestForBrowserApplication 
    /// 
    public sealed class UpdateManifestForBrowserApplication : Task 
    { 

        //------------------------------------------------------ 
        //
        //  Constructors
        //
        //----------------------------------------------------- 

        #region Constructors 
        ///  
        /// Constructors
        ///  
        public UpdateManifestForBrowserApplication()
            : base(SR.ResourceManager)
        {
        } 

        #endregion Constructors 
 
        //-----------------------------------------------------
        // 
        //  Public Methods
        //
        //-----------------------------------------------------
 
        #region Public Methods
 
        ///  
        /// Add hostInBrowser element node to the application manifest file.
        ///  
        /// 
        public override bool Execute()
        {
            bool successful = true; 
            TaskHelper.DisplayLogo(Log, SR.Get(SRID.UpdateManifestForBrowserApplicationTask));
 
            if (HostInBrowser != true) 
            {
                // HostInBrowser is not true, don't modify the manifest. 
                // Stop here.
                return successful;
            }
 
            try
            { 
                string appManifestFile = ApplicationManifest[0].ItemSpec; 
                XmlDocument manifestDocument;
 
                XmlTextReader manifestReader = null;
                XmlTextWriter manifestWriter = null;

                //Read the manifest 
                try
                { 
                    manifestReader = new XmlTextReader(appManifestFile); 
                    manifestDocument = new XmlDocument();
                    manifestDocument.Load(manifestReader); 
                }
                finally
                {
                    if (manifestReader != null) 
                    {
                        // Close the manifest reader 
                        manifestReader.Close(); 
                    }
                } 

                // NOTE:
                //
                // manifestReader must be closed before the manfiestWriter can 
                // update the document on the same manifest file.
                // 
 
                //Get to entryPoint XML
                XmlNodeList entryPointList = manifestDocument.GetElementsByTagName(c_entryPoint); 
                XmlNode entryPoint = entryPointList[0];

                //Create element node for browser entry point
                XmlElement hostInBrowser; 
                hostInBrowser = manifestDocument.CreateElement(c_hostInBrowser, c_asmv3);
 
                // Append HostInBrowser node to the end of list of children of entryPoint. 
                entryPoint.AppendChild(hostInBrowser);
 
                // Update the manifest file.
                try
                {
                    manifestWriter = new XmlTextWriter(appManifestFile, System.Text.Encoding.UTF8); 
                    manifestWriter.Formatting = Formatting.Indented;
                    manifestWriter.Indentation = 4; 
                    manifestDocument.WriteTo(manifestWriter); 
                }
                finally 
                {
                    if (manifestWriter != null)
                    {
                        // Close the manifest writer 
                        manifestWriter.Close();
                    } 
                } 

            } 
            catch (Exception e)
            {
                // PreSharp Complaint 6500 - do not handle null-ref or SEH exceptions.
                if (e is NullReferenceException || e is SEHException) 
                {
                    throw; 
                } 
                else
                { 
                    Log.LogErrorFromException(e);
                    successful = false;
                }
            } 
#pragma warning disable 6500
            catch   // Non-cls compliant errors 
            { 
                Log.LogErrorWithCodeFromResources(SRID.NonClsError);
                successful = false; 
            }
#pragma warning restore 6500

 
            return successful;
        } 
 
        #endregion Public Methods
 
        //------------------------------------------------------
        //
        //  Public Properties
        // 
        //-----------------------------------------------------
 
        #region Public Properties 

        ///  
        /// Host In Browser
        /// 
        /// 
        [Required] 
        public bool HostInBrowser
        { 
            get { return _hostInBrowser; } 
            set
            { 
                _hostInBrowser = value;
            }
        }
 
        /// 
        /// Application Manifest File 
        ///  
        /// 
        [Required] 
        public ITaskItem[] ApplicationManifest
        {
            get { return _applicationmanifest; }
            set { _applicationmanifest = value; } 
        }
 
        #endregion Public Properties 

        //------------------------------------------------------ 
        //
        //  Private Fields
        //
        //------------------------------------------------------ 

        #region Private Fields 
 
        private ITaskItem[] _applicationmanifest;
        private bool        _hostInBrowser = false; 

        //
        // Put some predefined element or attribute name in below
        // const strings. 
        //
        private const string c_entryPoint = "entryPoint"; 
        private const string c_hostInBrowser ="hostInBrowser"; 
        private const string c_asmv3= "urn:schemas-microsoft-com:asm.v3";
 
        #endregion Private Fields

    }
 
    #endregion Manifest Creator Task class
 
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
/////////////////////////////////////////////////////////////////////////////// 
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
// UpdateManifestForBrowserApplication.cs 
//
// Update application manifest for browser-hosted application. 
// 
// spec: http://avalon/app/Compilation/Avalon-MSBUILD%20Tasks.doc
// 
// vivekd Created             06/17/2004
// weibz  update and cleanup  06/10/2005
//
/////////////////////////////////////////////////////////////////////////////// 

using System; 
using System.IO; 
using System.Diagnostics;
using System.Runtime.InteropServices; 
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;
using Microsoft.Build.Tasks;
using System.Xml; 
using System.Xml.XPath;
using Microsoft.Build.Tasks.Windows; 
using System.Collections; 

using MS.Utility; 
using MS.Internal.Tasks;

// Since we disable PreSharp warnings in this file, PreSharp warning is unknown to C# compiler.
// We first need to disable warnings about unknown message numbers and unknown pragmas. 
#pragma warning disable 1634, 1691
 
 
namespace Microsoft.Build.Tasks.Windows
{ 
    #region Manifest Creator Task class

    /// 
    /// Class of UpdateManifestForBrowserApplication 
    /// 
    public sealed class UpdateManifestForBrowserApplication : Task 
    { 

        //------------------------------------------------------ 
        //
        //  Constructors
        //
        //----------------------------------------------------- 

        #region Constructors 
        ///  
        /// Constructors
        ///  
        public UpdateManifestForBrowserApplication()
            : base(SR.ResourceManager)
        {
        } 

        #endregion Constructors 
 
        //-----------------------------------------------------
        // 
        //  Public Methods
        //
        //-----------------------------------------------------
 
        #region Public Methods
 
        ///  
        /// Add hostInBrowser element node to the application manifest file.
        ///  
        /// 
        public override bool Execute()
        {
            bool successful = true; 
            TaskHelper.DisplayLogo(Log, SR.Get(SRID.UpdateManifestForBrowserApplicationTask));
 
            if (HostInBrowser != true) 
            {
                // HostInBrowser is not true, don't modify the manifest. 
                // Stop here.
                return successful;
            }
 
            try
            { 
                string appManifestFile = ApplicationManifest[0].ItemSpec; 
                XmlDocument manifestDocument;
 
                XmlTextReader manifestReader = null;
                XmlTextWriter manifestWriter = null;

                //Read the manifest 
                try
                { 
                    manifestReader = new XmlTextReader(appManifestFile); 
                    manifestDocument = new XmlDocument();
                    manifestDocument.Load(manifestReader); 
                }
                finally
                {
                    if (manifestReader != null) 
                    {
                        // Close the manifest reader 
                        manifestReader.Close(); 
                    }
                } 

                // NOTE:
                //
                // manifestReader must be closed before the manfiestWriter can 
                // update the document on the same manifest file.
                // 
 
                //Get to entryPoint XML
                XmlNodeList entryPointList = manifestDocument.GetElementsByTagName(c_entryPoint); 
                XmlNode entryPoint = entryPointList[0];

                //Create element node for browser entry point
                XmlElement hostInBrowser; 
                hostInBrowser = manifestDocument.CreateElement(c_hostInBrowser, c_asmv3);
 
                // Append HostInBrowser node to the end of list of children of entryPoint. 
                entryPoint.AppendChild(hostInBrowser);
 
                // Update the manifest file.
                try
                {
                    manifestWriter = new XmlTextWriter(appManifestFile, System.Text.Encoding.UTF8); 
                    manifestWriter.Formatting = Formatting.Indented;
                    manifestWriter.Indentation = 4; 
                    manifestDocument.WriteTo(manifestWriter); 
                }
                finally 
                {
                    if (manifestWriter != null)
                    {
                        // Close the manifest writer 
                        manifestWriter.Close();
                    } 
                } 

            } 
            catch (Exception e)
            {
                // PreSharp Complaint 6500 - do not handle null-ref or SEH exceptions.
                if (e is NullReferenceException || e is SEHException) 
                {
                    throw; 
                } 
                else
                { 
                    Log.LogErrorFromException(e);
                    successful = false;
                }
            } 
#pragma warning disable 6500
            catch   // Non-cls compliant errors 
            { 
                Log.LogErrorWithCodeFromResources(SRID.NonClsError);
                successful = false; 
            }
#pragma warning restore 6500

 
            return successful;
        } 
 
        #endregion Public Methods
 
        //------------------------------------------------------
        //
        //  Public Properties
        // 
        //-----------------------------------------------------
 
        #region Public Properties 

        ///  
        /// Host In Browser
        /// 
        /// 
        [Required] 
        public bool HostInBrowser
        { 
            get { return _hostInBrowser; } 
            set
            { 
                _hostInBrowser = value;
            }
        }
 
        /// 
        /// Application Manifest File 
        ///  
        /// 
        [Required] 
        public ITaskItem[] ApplicationManifest
        {
            get { return _applicationmanifest; }
            set { _applicationmanifest = value; } 
        }
 
        #endregion Public Properties 

        //------------------------------------------------------ 
        //
        //  Private Fields
        //
        //------------------------------------------------------ 

        #region Private Fields 
 
        private ITaskItem[] _applicationmanifest;
        private bool        _hostInBrowser = false; 

        //
        // Put some predefined element or attribute name in below
        // const strings. 
        //
        private const string c_entryPoint = "entryPoint"; 
        private const string c_hostInBrowser ="hostInBrowser"; 
        private const string c_asmv3= "urn:schemas-microsoft-com:asm.v3";
 
        #endregion Private Fields

    }
 
    #endregion Manifest Creator Task class
 
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK