Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / BuildTasks / Microsoft / Build / Tasks / Windows / MergeLocalizationDirectives.cs / 1305600 / MergeLocalizationDirectives.cs
//---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Description: The task that merges all the localization directives files // // History: // 06/15/2005 garyyang - created // //--------------------------------------------------------------------------- using System; using System.IO; using System.Text; using System.Xml; using System.Runtime.InteropServices; using Microsoft.Build.Framework; using Microsoft.Build.Utilities; using MS.Internal.Globalization; using MS.Internal.Tasks; using MS.Utility; // For SR // Since we disable PreSharp warnings in this file, we first need to disable warnings // about unknown message numbers and unknown pragmas. #pragma warning disable 1634, 1691 namespace Microsoft.Build.Tasks.Windows { ////// This task merges the localization directives files of single bamls /// into one file corresponding to for the compiled assembly. /// public sealed class MergeLocalizationDirectives : Task { //-------------------------------- // Constructor //-------------------------------- ////// Default constructor of the task /// public MergeLocalizationDirectives() : base(SR.ResourceManager) { } //-------------------------------- // Public methods //-------------------------------- ////// Method invoked by MSBuild to merge localization files of single bamls to /// one file for the whole Assembly. /// public override bool Execute() { TaskHelper.DisplayLogo(Log, SR.Get(SRID.MergeLocalizationDirectivesTask)); if (GeneratedLocalizationFiles.Length > 0) { try { string absoluteFilePath = Path.Combine( Directory.GetCurrentDirectory(), _outputFile ); using (StreamWriter streamWriter = new StreamWriter( new FileStream(absoluteFilePath, FileMode.Create), new UTF8Encoding(true) ) ) { Log.LogMessageFromResources(SRID.CommentFileGenerating, _outputFile); streamWriter.WriteLine("<" + LocComments.LocDocumentRoot + ">"); // keey things simple and fast. Just keep appending the // xml fragments that are already outputed. foreach (ITaskItem item in GeneratedLocalizationFiles) { using (StreamReader locStreamReader = new StreamReader(item.ItemSpec)) { // directly concat Xml fragments streamWriter.WriteLine(locStreamReader.ReadToEnd()); } } streamWriter.WriteLine("" + LocComments.LocDocumentRoot + ">"); Log.LogMessageFromResources(SRID.CommentFileGenerated, _outputFile); } } 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); return false; } } #pragma warning disable 6500 catch // Non-CLS compliant errors { Log.LogErrorWithCodeFromResources(SRID.NonClsError); return false; } #pragma warning restore 6500 } return true; } //-------------------------------- // Public properties //-------------------------------- ////// The list of localization directives files for individual Bamls. /// [Required] public ITaskItem[] GeneratedLocalizationFiles { get { return _generatedLocalizationFiles; } set { _generatedLocalizationFiles = value; } } ////// The output path of the compiled assembly /// [Required] [Output] public string OutputFile { get { return _outputFile; } set { _outputFile = value; } } //--------------------------------- // Private members //--------------------------------- private ITaskItem[] _generatedLocalizationFiles; private string _outputFile; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // Description: The task that merges all the localization directives files // // History: // 06/15/2005 garyyang - created // //--------------------------------------------------------------------------- using System; using System.IO; using System.Text; using System.Xml; using System.Runtime.InteropServices; using Microsoft.Build.Framework; using Microsoft.Build.Utilities; using MS.Internal.Globalization; using MS.Internal.Tasks; using MS.Utility; // For SR // Since we disable PreSharp warnings in this file, we first need to disable warnings // about unknown message numbers and unknown pragmas. #pragma warning disable 1634, 1691 namespace Microsoft.Build.Tasks.Windows { ////// This task merges the localization directives files of single bamls /// into one file corresponding to for the compiled assembly. /// public sealed class MergeLocalizationDirectives : Task { //-------------------------------- // Constructor //-------------------------------- ////// Default constructor of the task /// public MergeLocalizationDirectives() : base(SR.ResourceManager) { } //-------------------------------- // Public methods //-------------------------------- ////// Method invoked by MSBuild to merge localization files of single bamls to /// one file for the whole Assembly. /// public override bool Execute() { TaskHelper.DisplayLogo(Log, SR.Get(SRID.MergeLocalizationDirectivesTask)); if (GeneratedLocalizationFiles.Length > 0) { try { string absoluteFilePath = Path.Combine( Directory.GetCurrentDirectory(), _outputFile ); using (StreamWriter streamWriter = new StreamWriter( new FileStream(absoluteFilePath, FileMode.Create), new UTF8Encoding(true) ) ) { Log.LogMessageFromResources(SRID.CommentFileGenerating, _outputFile); streamWriter.WriteLine("<" + LocComments.LocDocumentRoot + ">"); // keey things simple and fast. Just keep appending the // xml fragments that are already outputed. foreach (ITaskItem item in GeneratedLocalizationFiles) { using (StreamReader locStreamReader = new StreamReader(item.ItemSpec)) { // directly concat Xml fragments streamWriter.WriteLine(locStreamReader.ReadToEnd()); } } streamWriter.WriteLine("" + LocComments.LocDocumentRoot + ">"); Log.LogMessageFromResources(SRID.CommentFileGenerated, _outputFile); } } 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); return false; } } #pragma warning disable 6500 catch // Non-CLS compliant errors { Log.LogErrorWithCodeFromResources(SRID.NonClsError); return false; } #pragma warning restore 6500 } return true; } //-------------------------------- // Public properties //-------------------------------- ////// The list of localization directives files for individual Bamls. /// [Required] public ITaskItem[] GeneratedLocalizationFiles { get { return _generatedLocalizationFiles; } set { _generatedLocalizationFiles = value; } } ////// The output path of the compiled assembly /// [Required] [Output] public string OutputFile { get { return _outputFile; } set { _outputFile = value; } } //--------------------------------- // Private members //--------------------------------- private ITaskItem[] _generatedLocalizationFiles; private string _outputFile; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- RadioButtonBaseAdapter.cs
- AttributeCollection.cs
- BooleanStorage.cs
- ResourcesBuildProvider.cs
- ScriptingRoleServiceSection.cs
- SynchronizationContext.cs
- CFGGrammar.cs
- ReliabilityContractAttribute.cs
- regiisutil.cs
- ImpersonateTokenRef.cs
- Error.cs
- ListViewGroupItemCollection.cs
- CommandManager.cs
- DesignColumnCollection.cs
- RadioButtonAutomationPeer.cs
- DockPatternIdentifiers.cs
- MediaElementAutomationPeer.cs
- ToolStripDesigner.cs
- MachineKeyValidationConverter.cs
- RadioButton.cs
- ProcessHostMapPath.cs
- CssTextWriter.cs
- Panel.cs
- PropertyInfoSet.cs
- SignedXml.cs
- GenericsInstances.cs
- Number.cs
- FragmentQuery.cs
- DbSetClause.cs
- ListBase.cs
- OutputCacheSection.cs
- GeneratedView.cs
- PropertyBuilder.cs
- Freezable.cs
- TextView.cs
- configsystem.cs
- Unit.cs
- HwndMouseInputProvider.cs
- GeneratedCodeAttribute.cs
- ReceiveContextCollection.cs
- DataGridViewCellPaintingEventArgs.cs
- ProbeMatches11.cs
- CfgParser.cs
- CollectionView.cs
- VersionPair.cs
- HttpResponseHeader.cs
- FixedSOMGroup.cs
- HtmlInputRadioButton.cs
- ProxyHelper.cs
- CallSiteBinder.cs
- XmlnsCache.cs
- ItemType.cs
- ListBindingHelper.cs
- XmlSchemaProviderAttribute.cs
- SymbolEqualComparer.cs
- FolderLevelBuildProvider.cs
- PaintValueEventArgs.cs
- TreeNode.cs
- CookielessHelper.cs
- XmlTextAttribute.cs
- X509Logo.cs
- DataGridCommandEventArgs.cs
- x509utils.cs
- LocalizationParserHooks.cs
- Compress.cs
- ThemeDictionaryExtension.cs
- PropVariant.cs
- CompoundFileStreamReference.cs
- CheckBoxRenderer.cs
- Transform.cs
- EventMappingSettings.cs
- ObjectAnimationUsingKeyFrames.cs
- ModuleBuilderData.cs
- DataGridColumnCollection.cs
- MdImport.cs
- ArgumentOutOfRangeException.cs
- PermissionAttributes.cs
- UnmanagedMemoryStreamWrapper.cs
- DetailsViewRowCollection.cs
- ObjectStateFormatter.cs
- FormatStringEditor.cs
- StandardCommandToolStripMenuItem.cs
- TextEditorContextMenu.cs
- AppDomainEvidenceFactory.cs
- StateMachine.cs
- SqlUnionizer.cs
- BitmapCodecInfo.cs
- BrushProxy.cs
- UIPropertyMetadata.cs
- WsdlBuildProvider.cs
- XmlParserContext.cs
- DbModificationClause.cs
- CngProperty.cs
- OleStrCAMarshaler.cs
- NavigationEventArgs.cs
- TablePattern.cs
- Html32TextWriter.cs
- StylusPointPropertyInfoDefaults.cs
- CombinedGeometry.cs
- Selection.cs