Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / BuildTasks / 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 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
- GenerateDerivedKeyRequest.cs
- XPathScanner.cs
- DockProviderWrapper.cs
- DeclarationUpdate.cs
- Soap12ServerProtocol.cs
- WrappedIUnknown.cs
- Debug.cs
- UIElementPropertyUndoUnit.cs
- Speller.cs
- CrossSiteScriptingValidation.cs
- ColorContext.cs
- SafeRightsManagementQueryHandle.cs
- TypeTypeConverter.cs
- InplaceBitmapMetadataWriter.cs
- AspNetSynchronizationContext.cs
- WebResourceAttribute.cs
- Expander.cs
- KeyNotFoundException.cs
- WindowsEditBoxRange.cs
- XpsFontSerializationService.cs
- MsmqReceiveParameters.cs
- PropertyGridView.cs
- ActiveXSite.cs
- NameTable.cs
- XmlSchemaSearchPattern.cs
- QueryableFilterUserControl.cs
- TimeIntervalCollection.cs
- WorkerRequest.cs
- FixedPageProcessor.cs
- CompositionTarget.cs
- UnionExpr.cs
- PropertyCondition.cs
- XhtmlTextWriter.cs
- ResourcesGenerator.cs
- Timeline.cs
- _TimerThread.cs
- DataBindEngine.cs
- DesignerVerbCollection.cs
- SqlExpressionNullability.cs
- AttributeUsageAttribute.cs
- AggregationMinMaxHelpers.cs
- TemplateKeyConverter.cs
- DelegateSerializationHolder.cs
- XmlWellformedWriter.cs
- WebPartCancelEventArgs.cs
- LinkArea.cs
- BigInt.cs
- CompositeTypefaceMetrics.cs
- UndoEngine.cs
- CachedPathData.cs
- ShapingWorkspace.cs
- SecurityManager.cs
- DataTableTypeConverter.cs
- EllipseGeometry.cs
- SchemaSetCompiler.cs
- SingleBodyParameterMessageFormatter.cs
- BackgroundWorker.cs
- MachineKey.cs
- MultipartIdentifier.cs
- SimpleBitVector32.cs
- WebConfigurationManager.cs
- PerfCounterSection.cs
- CodeExpressionCollection.cs
- xmlsaver.cs
- SByteConverter.cs
- HttpWebResponse.cs
- ContextDataSource.cs
- EdmValidator.cs
- CqlIdentifiers.cs
- Camera.cs
- ToolStripItem.cs
- _NativeSSPI.cs
- DockPanel.cs
- WebPartDisplayModeCollection.cs
- XmlUrlEditor.cs
- DependencyObjectProvider.cs
- MessageQueuePermissionEntry.cs
- ManipulationInertiaStartingEventArgs.cs
- XsltException.cs
- XpsImageSerializationService.cs
- SiteMembershipCondition.cs
- IntermediatePolicyValidator.cs
- WindowsRegion.cs
- LoginCancelEventArgs.cs
- SetterBase.cs
- Model3D.cs
- AmbientEnvironment.cs
- MenuCommand.cs
- ControlBuilderAttribute.cs
- sortedlist.cs
- SqlDelegatedTransaction.cs
- BindableTemplateBuilder.cs
- StylusPointPropertyUnit.cs
- AnnotationHighlightLayer.cs
- AddingNewEventArgs.cs
- RestrictedTransactionalPackage.cs
- ParameterCollection.cs
- DataServiceRequest.cs
- Lazy.cs
- HttpPostedFile.cs