Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Build / Microsoft / Build / Tasks / Windows / MergeLocalizationDirectives.cs / 1 / MergeLocalizationDirectives.cs
//----------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// Description: The task that merges all the localization directives files
//
// History:
// 06/15/2005 [....] - 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.String, _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.String, _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.String);
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ConditionalBranch.cs
- PermissionSetEnumerator.cs
- ValidateNames.cs
- StatusStrip.cs
- TextElementAutomationPeer.cs
- QueryResults.cs
- BufferBuilder.cs
- ResourceWriter.cs
- TimelineGroup.cs
- TypeUtil.cs
- LinkedList.cs
- MaskedTextBoxDesignerActionList.cs
- PackagePart.cs
- Gdiplus.cs
- HttpsChannelFactory.cs
- Win32KeyboardDevice.cs
- GestureRecognitionResult.cs
- VirtualizedItemPattern.cs
- DataGridColumnDropSeparator.cs
- TableCell.cs
- JapaneseCalendar.cs
- PageRequestManager.cs
- ScriptingRoleServiceSection.cs
- ResourcesGenerator.cs
- ValidationEventArgs.cs
- PageRequestManager.cs
- ModulesEntry.cs
- PathGradientBrush.cs
- UnsafeNativeMethods.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- DataGridViewElement.cs
- DuplicateWaitObjectException.cs
- OdbcException.cs
- HttpResponseHeader.cs
- Helpers.cs
- ADConnectionHelper.cs
- ErrorTableItemStyle.cs
- SerializationAttributes.cs
- Cell.cs
- QueryContinueDragEventArgs.cs
- AccessDataSource.cs
- QuestionEventArgs.cs
- ContractMethodInfo.cs
- ConfigurationManagerHelperFactory.cs
- Crypto.cs
- FlagsAttribute.cs
- DataGridTablesFactory.cs
- Number.cs
- RelationshipDetailsRow.cs
- EventPropertyMap.cs
- Expression.cs
- ContourSegment.cs
- DataGridPageChangedEventArgs.cs
- MailMessageEventArgs.cs
- XmlReader.cs
- SlipBehavior.cs
- FixedFindEngine.cs
- RequiredArgumentAttribute.cs
- FacetDescriptionElement.cs
- SyntaxCheck.cs
- TypeElement.cs
- URLAttribute.cs
- ComplexTypeEmitter.cs
- SystemResources.cs
- UIElementCollection.cs
- SoapTypeAttribute.cs
- messageonlyhwndwrapper.cs
- DocumentXmlWriter.cs
- FixedSOMFixedBlock.cs
- CachingHintValidation.cs
- TemplateParser.cs
- PersonalizableAttribute.cs
- MobileResource.cs
- SelfIssuedSamlTokenFactory.cs
- PtsPage.cs
- FormViewInsertEventArgs.cs
- SoapHeader.cs
- TaskScheduler.cs
- OdbcRowUpdatingEvent.cs
- NegotiateStream.cs
- MailMessageEventArgs.cs
- MultiSelectRootGridEntry.cs
- BinaryCommonClasses.cs
- RegexTree.cs
- KnownBoxes.cs
- PenThreadWorker.cs
- EdmMember.cs
- CodeDelegateInvokeExpression.cs
- DirectionalAction.cs
- HtmlShim.cs
- AvTraceFormat.cs
- ToolStripContentPanel.cs
- GroupedContextMenuStrip.cs
- ParseNumbers.cs
- DbCommandTree.cs
- ExternalException.cs
- AssertValidation.cs
- PolicyValidationException.cs
- EditCommandColumn.cs
- Catch.cs