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
- PartialCachingControl.cs
- Timer.cs
- DocumentViewerConstants.cs
- CodeDirectoryCompiler.cs
- StreamSecurityUpgradeInitiatorBase.cs
- DesignTimeHTMLTextWriter.cs
- HtmlInputHidden.cs
- EntityTypeEmitter.cs
- WhitespaceRule.cs
- MemberPath.cs
- VBCodeProvider.cs
- X509Certificate.cs
- __FastResourceComparer.cs
- AesCryptoServiceProvider.cs
- WindowsIPAddress.cs
- localization.cs
- StylusPointProperties.cs
- RoutedUICommand.cs
- BrowserCapabilitiesFactory.cs
- TeredoHelper.cs
- Dispatcher.cs
- BitmapPalettes.cs
- ResourceProviderFactory.cs
- ListViewCommandEventArgs.cs
- ScriptReference.cs
- URLMembershipCondition.cs
- CryptoApi.cs
- SettingsPropertyWrongTypeException.cs
- OutputScope.cs
- HtmlEmptyTagControlBuilder.cs
- SiteOfOriginPart.cs
- DataGridHelper.cs
- ChangePassword.cs
- DesignerTransactionCloseEvent.cs
- XappLauncher.cs
- BitmapCacheBrush.cs
- ElementUtil.cs
- AppDomainFactory.cs
- MimeFormatExtensions.cs
- FontWeight.cs
- BorderGapMaskConverter.cs
- DesignerDataTableBase.cs
- WebMessageEncoderFactory.cs
- PropertyRef.cs
- EventItfInfo.cs
- EntityDesignerBuildProvider.cs
- GenericWebPart.cs
- SqlRowUpdatedEvent.cs
- Itemizer.cs
- RecipientInfo.cs
- KeyValuePair.cs
- DocumentPageHost.cs
- NavigationExpr.cs
- PackageFilter.cs
- Parser.cs
- OleDbConnectionFactory.cs
- FormsAuthentication.cs
- DataContractSerializerServiceBehavior.cs
- WebPartManagerInternals.cs
- DescriptionAttribute.cs
- ping.cs
- CalendarButton.cs
- DocumentPaginator.cs
- WebPartConnectionsConnectVerb.cs
- SlipBehavior.cs
- PresentationAppDomainManager.cs
- DbTypeMap.cs
- DbExpressionRules.cs
- DataControlFieldsEditor.cs
- SymmetricSecurityProtocolFactory.cs
- EncoderBestFitFallback.cs
- DrawingImage.cs
- MeasureData.cs
- PresentationTraceSources.cs
- SchemaNames.cs
- BinaryFormatterWriter.cs
- AutomationIdentifierGuids.cs
- DateTimeValueSerializerContext.cs
- CodeGeneratorOptions.cs
- TokenCreationException.cs
- BitmapEffectDrawingContent.cs
- LocatorManager.cs
- StylusButtonCollection.cs
- X509CertificateStore.cs
- ByeMessage11.cs
- HttpEncoderUtility.cs
- FtpCachePolicyElement.cs
- LinkedDataMemberFieldEditor.cs
- CodeDOMProvider.cs
- ColumnBinding.cs
- ServiceContractListItem.cs
- PromptBuilder.cs
- MobileCapabilities.cs
- FontStretch.cs
- ClrPerspective.cs
- InstanceDataCollectionCollection.cs
- ViewValidator.cs
- XmlObjectSerializerContext.cs
- FilterableAttribute.cs
- GZipObjectSerializer.cs