Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DPTypeDescriptorContext.cs
- URLString.cs
- SweepDirectionValidation.cs
- ScriptManagerProxy.cs
- SqlBooleanizer.cs
- ThicknessAnimationBase.cs
- ErrorFormatter.cs
- ReaderWriterLockWrapper.cs
- CharAnimationUsingKeyFrames.cs
- QueryServiceConfigHandle.cs
- Menu.cs
- SctClaimSerializer.cs
- SRGSCompiler.cs
- DataGridItemAttachedStorage.cs
- coordinator.cs
- ListViewInsertedEventArgs.cs
- AdornedElementPlaceholder.cs
- EpmSyndicationContentSerializer.cs
- Journaling.cs
- NumericUpDown.cs
- MILUtilities.cs
- PositiveTimeSpanValidator.cs
- XmlProcessingInstruction.cs
- ReferenceEqualityComparer.cs
- RectConverter.cs
- ProgressBarRenderer.cs
- GridItem.cs
- GridEntryCollection.cs
- EntitySqlQueryCacheKey.cs
- InputScopeNameConverter.cs
- IriParsingElement.cs
- PerformanceCounterManager.cs
- NameValueSectionHandler.cs
- HealthMonitoringSectionHelper.cs
- TraceHandlerErrorFormatter.cs
- ArcSegment.cs
- BindingFormattingDialog.cs
- TimeoutException.cs
- AnnotationHelper.cs
- PointAnimation.cs
- TypeSemantics.cs
- OleTxTransaction.cs
- mansign.cs
- Registry.cs
- ListViewItemMouseHoverEvent.cs
- WindowProviderWrapper.cs
- PixelFormat.cs
- ProfilePropertyNameValidator.cs
- UrlMapping.cs
- SqlFactory.cs
- SmiMetaData.cs
- LogEntryUtils.cs
- SqlLiftWhereClauses.cs
- GenericRootAutomationPeer.cs
- GlobalAllocSafeHandle.cs
- Resources.Designer.cs
- TraceContext.cs
- DynamicUpdateCommand.cs
- SecurityTokenException.cs
- dtdvalidator.cs
- FSWPathEditor.cs
- DateTimePicker.cs
- DeviceSpecific.cs
- RadioButton.cs
- HttpContext.cs
- XmlQueryOutput.cs
- BinaryObjectInfo.cs
- ServiceOperationParameter.cs
- BrowserCapabilitiesCompiler.cs
- TableSectionStyle.cs
- SemaphoreFullException.cs
- SchemaReference.cs
- ErrorHandler.cs
- EntityClassGenerator.cs
- RectangleHotSpot.cs
- PathTooLongException.cs
- ScrollBarAutomationPeer.cs
- FontWeightConverter.cs
- GridItemPattern.cs
- PerspectiveCamera.cs
- SocketException.cs
- CodeCastExpression.cs
- ApplicationInfo.cs
- HelpOperationInvoker.cs
- DataConnectionHelper.cs
- ExeContext.cs
- CodeObjectCreateExpression.cs
- AddInServer.cs
- Compiler.cs
- WebException.cs
- WebPartEditorCancelVerb.cs
- BrowserCapabilitiesFactoryBase.cs
- HasActivatableWorkflowEvent.cs
- TypedLocationWrapper.cs
- EntityConnection.cs
- PrivilegedConfigurationManager.cs
- ConnectionAcceptor.cs
- Binding.cs
- ExpressionLexer.cs
- GenericUriParser.cs