Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2013 VisualStudioVersion = 12.0.30110.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mscorlib", "ndp\clr\src\BCL\mscorlib.csproj", "{A72657BE-225C-4239-956E-EE2A30893B41}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {A72657BE-225C-4239-956E-EE2A30893B41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A72657BE-225C-4239-956E-EE2A30893B41}.Debug|Any CPU.Build.0 = Debug|Any CPU {A72657BE-225C-4239-956E-EE2A30893B41}.Release|Any CPU.ActiveCfg = Release|Any CPU {A72657BE-225C-4239-956E-EE2A30893B41}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal
Secondly, I need to copy all the files needed in mscorlib project. These files are located in "/ndp/clr/src/BCL/*.*", you need to copy all these files.app
using System; namespace System { internal enum CompatibilityFlag { SwallowUnhandledExceptions, NullReferenceExceptionOnAV, EagerlyGenerateRandomAsymmKeys, FullTrustListAssembliesInGac, DateTimeParseIgnorePunctuation, OnlyGACDomainNeutral, DisableReplacementCustomCulture } }
Step2 : create "\ndp\clr\src\BCL\System\AppDomainSetup.cs" file and paste the code as follows.dom
using System; using System.Collections.Generic; using System.Deployment.Internal.Isolation.Manifest; using System.Globalization; using System.IO; using System.Runtime; using System.Runtime.CompilerServices; using System.Runtime.Hosting; using System.Runtime.InteropServices; using System.Runtime.Serialization; using System.Security; using System.Security.Permissions; using System.Security.Policy; using System.Security.Util; using System.Text; namespace System { [ClassInterface(ClassInterfaceType.None), ComVisible(true)] [Serializable] public sealed class AppDomainSetup : IAppDomainSetup { [Serializable] internal enum LoaderInformation { ApplicationBaseValue, ConfigurationFileValue, DynamicBaseValue, DevPathValue, ApplicationNameValue, PrivateBinPathValue, PrivateBinPathProbeValue, ShadowCopyDirectoriesValue, ShadowCopyFilesValue, CachePathValue, LicenseFileValue, DisallowPublisherPolicyValue, DisallowCodeDownloadValue, DisallowBindingRedirectsValue, DisallowAppBaseProbingValue, ConfigurationBytesValue, ManifestFilePathValue, VersioningManifestBaseValue, LoaderMaximum } private string[] _Entries; private LoaderOptimization _LoaderOptimization; private string _AppBase; [OptionalField(VersionAdded = 2)] private AppDomainInitializer _AppDomainInitializer; [OptionalField(VersionAdded = 2)] private string[] _AppDomainInitializerArguments; [OptionalField(VersionAdded = 2)] private ActivationArguments _ActivationArguments; [OptionalField(VersionAdded = 2)] private string _ApplicationTrust; [OptionalField(VersionAdded = 2)] private byte[] _ConfigurationBytes; [OptionalField(VersionAdded = 3)] private bool _DisableInterfaceCache; [OptionalField(VersionAdded = 4)] private string _AppDomainManagerAssembly; [OptionalField(VersionAdded = 4)] private string _AppDomainManagerType; [OptionalField(VersionAdded = 4)] private string[] _AptcaVisibleAssemblies; [OptionalField(VersionAdded = 4)] private Dictionary<string, object> _CompatFlags; [OptionalField(VersionAdded = 5)] private string _TargetFrameworkName; [NonSerialized] internal AppDomainSortingSetupInfo _AppDomainSortingSetupInfo; [OptionalField(VersionAdded = 5)] private bool _CheckedForTargetFrameworkName; [OptionalField(VersionAdded = 5)] private bool _UseRandomizedStringHashing; internal string[] Value { get { if (this._Entries == null) { this._Entries = new string[18]; } return this._Entries; } } public string AppDomainManagerAssembly { [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] get { return this._AppDomainManagerAssembly; } [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] set { this._AppDomainManagerAssembly = value; } } public string AppDomainManagerType { [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] get { return this._AppDomainManagerType; } [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] set { this._AppDomainManagerType = value; } } public string[] PartialTrustVisibleAssemblies { [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] get { return this._AptcaVisibleAssemblies; } set { if (value != null) { this._AptcaVisibleAssemblies = (string[])value.Clone(); Array.Sort<string>(this._AptcaVisibleAssemblies, StringComparer.OrdinalIgnoreCase); return; } this._AptcaVisibleAssemblies = null; } } public string ApplicationBase { [SecuritySafeCritical] get { return this.VerifyDir(this.GetUnsecureApplicationBase(), false); } set { this.Value[0] = this.NormalizePath(value, false); } } internal static string ApplicationBaseKey { get { return "APPBASE"; } } public string ConfigurationFile { [SecuritySafeCritical] get { return this.VerifyDir(this.Value[1], true); } set { this.Value[1] = value; } } internal string ConfigurationFileInternal { get { return this.NormalizePath(this.Value[1], true); } } internal static string ConfigurationFileKey { get { return "APP_CONFIG_FILE"; } } private static string ConfigurationBytesKey { get { return "APP_CONFIG_BLOB"; } } public string TargetFrameworkName { [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] get { return this._TargetFrameworkName; } [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] set { this._TargetFrameworkName = value; } } internal bool CheckedForTargetFrameworkName { [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] get { return this._CheckedForTargetFrameworkName; } [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] set { this._CheckedForTargetFrameworkName = value; } } public string DynamicBase { [SecuritySafeCritical] get { return this.VerifyDir(this.Value[2], true); } [SecuritySafeCritical] set { if (value == null) { this.Value[2] = null; return; } if (this.ApplicationName == null) { throw new MemberAccessException(Environment.GetResourceString("AppDomain_RequireApplicationName")); } StringBuilder stringBuilder = new StringBuilder(this.NormalizePath(value, false)); stringBuilder.Append('\\'); string value2 = ParseNumbers.IntToString(this.ApplicationName.GetHashCode(), 16, 8, '0', 256); stringBuilder.Append(value2); this.Value[2] = stringBuilder.ToString(); } } internal static string DynamicBaseKey { get { return "DYNAMIC_BASE"; } } public bool DisallowPublisherPolicy { get { return this.Value[11] != null; } set { if (value) { this.Value[11] = "true"; return; } this.Value[11] = null; } } public bool DisallowBindingRedirects { get { return this.Value[13] != null; } set { if (value) { this.Value[13] = "true"; return; } this.Value[13] = null; } } public bool DisallowCodeDownload { get { return this.Value[12] != null; } set { if (value) { this.Value[12] = "true"; return; } this.Value[12] = null; } } public bool DisallowApplicationBaseProbing { get { return this.Value[14] != null; } set { if (value) { this.Value[14] = "true"; return; } this.Value[14] = null; } } internal string DeveloperPath { [SecurityCritical] get { string text = this.Value[3]; this.VerifyDirList(text); return text; } set { if (value == null) { this.Value[3] = null; return; } string[] array = value.Split(new char[] { ';' }); int num = array.Length; StringBuilder stringBuilder = StringBuilderCache.Acquire(16); bool flag = false; for (int i = 0; i < num; i++) { if (array[i].Length != 0) { if (flag) { stringBuilder.Append(";"); } else { flag = true; } stringBuilder.Append(Path.GetFullPathInternal(array[i])); } } string stringAndRelease = StringBuilderCache.GetStringAndRelease(stringBuilder); if (stringAndRelease.Length == 0) { this.Value[3] = null; return; } this.Value[3] = stringAndRelease; } } internal static string DisallowPublisherPolicyKey { get { return "DISALLOW_APP"; } } internal static string DisallowCodeDownloadKey { get { return "CODE_DOWNLOAD_DISABLED"; } } internal static string DisallowBindingRedirectsKey { get { return "DISALLOW_APP_REDIRECTS"; } } internal static string DeveloperPathKey { get { return "DEV_PATH"; } } internal static string DisallowAppBaseProbingKey { get { return "DISALLOW_APP_BASE_PROBING"; } } public string ApplicationName { get { return this.Value[4]; } set { this.Value[4] = value; } } internal static string ApplicationNameKey { get { return "APP_NAME"; } } [XmlIgnoreMember] public AppDomainInitializer AppDomainInitializer { [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] get { return this._AppDomainInitializer; } [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] set { this._AppDomainInitializer = value; } } public string[] AppDomainInitializerArguments { [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] get { return this._AppDomainInitializerArguments; } [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] set { this._AppDomainInitializerArguments = value; } } [XmlIgnoreMember] public ActivationArguments ActivationArguments { [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] get { return this._ActivationArguments; } [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] set { this._ActivationArguments = value; } } [XmlIgnoreMember] public ApplicationTrust ApplicationTrust { [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] get { return this.InternalGetApplicationTrust(); } [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] set { this.InternalSetApplicationTrust(value); } } public string PrivateBinPath { [SecuritySafeCritical] get { string text = this.Value[5]; this.VerifyDirList(text); return text; } set { this.Value[5] = value; } } internal static string PrivateBinPathKey { get { return "PRIVATE_BINPATH"; } } public string PrivateBinPathProbe { get { return this.Value[6]; } set { this.Value[6] = value; } } internal static string PrivateBinPathProbeKey { get { return "BINPATH_PROBE_ONLY"; } } public string ShadowCopyDirectories { [SecuritySafeCritical] get { string text = this.Value[7]; this.VerifyDirList(text); return text; } set { this.Value[7] = value; } } internal static string ShadowCopyDirectoriesKey { get { return "SHADOW_COPY_DIRS"; } } public string ShadowCopyFiles { get { return this.Value[8]; } set { if (value != null && string.Compare(value, "true", StringComparison.OrdinalIgnoreCase) == 0) { this.Value[8] = value; return; } this.Value[8] = null; } } internal static string ShadowCopyFilesKey { get { return "FORCE_CACHE_INSTALL"; } } public string CachePath { [SecuritySafeCritical] get { return this.VerifyDir(this.Value[9], false); } set { this.Value[9] = this.NormalizePath(value, false); } } internal static string CachePathKey { get { return "CACHE_BASE"; } } public string LicenseFile { [SecuritySafeCritical] get { return this.VerifyDir(this.Value[10], true); } set { this.Value[10] = value; } } public LoaderOptimization LoaderOptimization { [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] get { return this._LoaderOptimization; } [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] set { this._LoaderOptimization = value; } } internal static string LoaderOptimizationKey { get { return "LOADER_OPTIMIZATION"; } } internal static string ConfigurationExtension { get { return ".config"; } } internal static string PrivateBinPathEnvironmentVariable { get { return "RELPATH"; } } internal static string RuntimeConfigurationFile { get { return "config\\machine.config"; } } internal static string MachineConfigKey { get { return "MACHINE_CONFIG"; } } internal static string HostBindingKey { get { return "HOST_CONFIG"; } } public bool SandboxInterop { [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] get { return this._DisableInterfaceCache; } [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")] set { this._DisableInterfaceCache = value; } } [SecuritySafeCritical] internal AppDomainSetup(AppDomainSetup copy, bool copyDomainBoundData) { string[] value = this.Value; if (copy != null) { string[] value2 = copy.Value; int num = this._Entries.Length; int num2 = value2.Length; int num3 = (num2 < num) ? num2 : num; for (int i = 0; i < num3; i++) { value[i] = value2[i]; } if (num3 < num) { for (int j = num3; j < num; j++) { value[j] = null; } } this._LoaderOptimization = copy._LoaderOptimization; this._AppDomainInitializerArguments = copy.AppDomainInitializerArguments; this._ActivationArguments = copy.ActivationArguments; this._ApplicationTrust = copy._ApplicationTrust; if (copyDomainBoundData) { this._AppDomainInitializer = copy.AppDomainInitializer; } else { this._AppDomainInitializer = null; } this._ConfigurationBytes = copy.GetConfigurationBytes(); this._DisableInterfaceCache = copy._DisableInterfaceCache; this._AppDomainManagerAssembly = copy.AppDomainManagerAssembly; this._AppDomainManagerType = copy.AppDomainManagerType; this._AptcaVisibleAssemblies = copy.PartialTrustVisibleAssemblies; if (copy._CompatFlags != null) { this.SetCompatibilitySwitches(copy._CompatFlags.Keys); } if (copy._AppDomainSortingSetupInfo != null) { this._AppDomainSortingSetupInfo = new AppDomainSortingSetupInfo(copy._AppDomainSortingSetupInfo); } this._TargetFrameworkName = copy._TargetFrameworkName; this._UseRandomizedStringHashing = copy._UseRandomizedStringHashing; return; } this._LoaderOptimization = LoaderOptimization.NotSpecified; } public AppDomainSetup() { this._LoaderOptimization = LoaderOptimization.NotSpecified; } public AppDomainSetup(ActivationContext activationContext) : this(new ActivationArguments(activationContext)) { } [SecuritySafeCritical] public AppDomainSetup(ActivationArguments activationArguments) { if (activationArguments == null) { throw new ArgumentNullException("activationArguments"); } this._LoaderOptimization = LoaderOptimization.NotSpecified; this.ActivationArguments = activationArguments; string entryPointFullPath = CmsUtils.GetEntryPointFullPath(activationArguments); if (!string.IsNullOrEmpty(entryPointFullPath)) { this.SetupDefaults(entryPointFullPath, false); return; } this.ApplicationBase = activationArguments.ActivationContext.ApplicationDirectory; } internal void SetupDefaults(string imageLocation, bool imageLocationAlreadyNormalized = false) { char[] anyOf = new char[] { '\\', '/' }; int num = imageLocation.LastIndexOfAny(anyOf); if (num == -1) { this.ApplicationName = imageLocation; } else { this.ApplicationName = imageLocation.Substring(num + 1); string text = imageLocation.Substring(0, num + 1); if (imageLocationAlreadyNormalized) { this.Value[0] = text; } else { this.ApplicationBase = text; } } this.ConfigurationFile = this.ApplicationName + AppDomainSetup.ConfigurationExtension; } internal string GetUnsecureApplicationBase() { return this.Value[0]; } public byte[] GetConfigurationBytes() { if (this._ConfigurationBytes == null) { return null; } return (byte[])this._ConfigurationBytes.Clone(); } public void SetConfigurationBytes(byte[] value) { this._ConfigurationBytes = value; } internal Dictionary<string, object> GetCompatibilityFlags() { return this._CompatFlags; } public void SetCompatibilitySwitches(IEnumerable<string> switches) { if (this._AppDomainSortingSetupInfo != null) { this._AppDomainSortingSetupInfo._useV2LegacySorting = false; this._AppDomainSortingSetupInfo._useV4LegacySorting = false; } this._UseRandomizedStringHashing = false; if (switches != null) { this._CompatFlags = new Dictionary<string, object>(); using (IEnumerator<string> enumerator = switches.GetEnumerator()) { while (enumerator.MoveNext()) { string current = enumerator.Current; if (StringComparer.OrdinalIgnoreCase.Equals("NetFx40_Legacy20SortingBehavior", current)) { if (this._AppDomainSortingSetupInfo == null) { this._AppDomainSortingSetupInfo = new AppDomainSortingSetupInfo(); } this._AppDomainSortingSetupInfo._useV2LegacySorting = true; } if (StringComparer.OrdinalIgnoreCase.Equals("NetFx45_Legacy40SortingBehavior", current)) { if (this._AppDomainSortingSetupInfo == null) { this._AppDomainSortingSetupInfo = new AppDomainSortingSetupInfo(); } this._AppDomainSortingSetupInfo._useV4LegacySorting = true; } if (StringComparer.OrdinalIgnoreCase.Equals("UseRandomizedStringHashAlgorithm", current)) { this._UseRandomizedStringHashing = true; } this._CompatFlags.Add(current, null); } return; } } this._CompatFlags = null; } [SecurityCritical] public void SetNativeFunction(string functionName, int functionVersion, IntPtr functionPointer) { if (functionName == null) { throw new ArgumentNullException("functionName"); } if (functionPointer == IntPtr.Zero) { throw new ArgumentNullException("functionPointer"); } if (string.IsNullOrWhiteSpace(functionName)) { throw new ArgumentException(Environment.GetResourceString("Argument_NPMSInvalidName"), "functionName"); } if (functionVersion < 1) { throw new ArgumentException(Environment.GetResourceString("ArgumentException_MinSortingVersion", new object[] { 1, functionName })); } if (this._AppDomainSortingSetupInfo == null) { this._AppDomainSortingSetupInfo = new AppDomainSortingSetupInfo(); } if (string.Equals(functionName, "IsNLSDefinedString", StringComparison.OrdinalIgnoreCase)) { this._AppDomainSortingSetupInfo._pfnIsNLSDefinedString = functionPointer; } if (string.Equals(functionName, "CompareStringEx", StringComparison.OrdinalIgnoreCase)) { this._AppDomainSortingSetupInfo._pfnCompareStringEx = functionPointer; } if (string.Equals(functionName, "LCMapStringEx", StringComparison.OrdinalIgnoreCase)) { this._AppDomainSortingSetupInfo._pfnLCMapStringEx = functionPointer; } if (string.Equals(functionName, "FindNLSStringEx", StringComparison.OrdinalIgnoreCase)) { this._AppDomainSortingSetupInfo._pfnFindNLSStringEx = functionPointer; } if (string.Equals(functionName, "CompareStringOrdinal", StringComparison.OrdinalIgnoreCase)) { this._AppDomainSortingSetupInfo._pfnCompareStringOrdinal = functionPointer; } if (string.Equals(functionName, "GetNLSVersionEx", StringComparison.OrdinalIgnoreCase)) { this._AppDomainSortingSetupInfo._pfnGetNLSVersionEx = functionPointer; } if (string.Equals(functionName, "FindStringOrdinal", StringComparison.OrdinalIgnoreCase)) { this._AppDomainSortingSetupInfo._pfnFindStringOrdinal = functionPointer; } } internal ApplicationTrust InternalGetApplicationTrust() { if (this._ApplicationTrust == null) { return null; } SecurityElement element = SecurityElement.FromString(this._ApplicationTrust); ApplicationTrust applicationTrust = new ApplicationTrust(); applicationTrust.FromXml(element); return applicationTrust; } internal void InternalSetApplicationTrust(ApplicationTrust value) { if (value != null) { this._ApplicationTrust = value.ToXml().ToString(); return; } this._ApplicationTrust = null; } [SecurityCritical] internal bool UpdateContextPropertyIfNeeded(AppDomainSetup.LoaderInformation FieldValue, string FieldKey, string UpdatedField, IntPtr fusionContext, AppDomainSetup oldADS) { string text = this.Value[(int)FieldValue]; string b = (oldADS == null) ? null : oldADS.Value[(int)FieldValue]; if (text != b) { AppDomainSetup.UpdateContextProperty(fusionContext, FieldKey, (UpdatedField == null) ? text : UpdatedField); return true; } return false; } [SecurityCritical] internal void UpdateBooleanContextPropertyIfNeeded(AppDomainSetup.LoaderInformation FieldValue, string FieldKey, IntPtr fusionContext, AppDomainSetup oldADS) { if (this.Value[(int)FieldValue] != null) { AppDomainSetup.UpdateContextProperty(fusionContext, FieldKey, "true"); return; } if (oldADS != null && oldADS.Value[(int)FieldValue] != null) { AppDomainSetup.UpdateContextProperty(fusionContext, FieldKey, "false"); } } [SecurityCritical] internal static bool ByteArraysAreDifferent(byte[] A, byte[] B) { int num = A.Length; if (num != B.Length) { return true; } for (int i = 0; i < num; i++) { if (A[i] != B[i]) { return true; } } return false; } [SecurityCritical] internal static void UpdateByteArrayContextPropertyIfNeeded(byte[] NewArray, byte[] OldArray, string FieldKey, IntPtr fusionContext) { if ((NewArray != null && OldArray == null) || (NewArray == null && OldArray != null) || (NewArray != null && OldArray != null && AppDomainSetup.ByteArraysAreDifferent(NewArray, OldArray))) { AppDomainSetup.UpdateContextProperty(fusionContext, FieldKey, NewArray); } } [SecurityCritical] internal void SetupFusionContext(IntPtr fusionContext, AppDomainSetup oldADS) { this.UpdateContextPropertyIfNeeded(AppDomainSetup.LoaderInformation.ApplicationBaseValue, AppDomainSetup.ApplicationBaseKey, null, fusionContext, oldADS); this.UpdateContextPropertyIfNeeded(AppDomainSetup.LoaderInformation.PrivateBinPathValue, AppDomainSetup.PrivateBinPathKey, null, fusionContext, oldADS); this.UpdateContextPropertyIfNeeded(AppDomainSetup.LoaderInformation.DevPathValue, AppDomainSetup.DeveloperPathKey, null, fusionContext, oldADS); this.UpdateBooleanContextPropertyIfNeeded(AppDomainSetup.LoaderInformation.DisallowPublisherPolicyValue, AppDomainSetup.DisallowPublisherPolicyKey, fusionContext, oldADS); this.UpdateBooleanContextPropertyIfNeeded(AppDomainSetup.LoaderInformation.DisallowCodeDownloadValue, AppDomainSetup.DisallowCodeDownloadKey, fusionContext, oldADS); this.UpdateBooleanContextPropertyIfNeeded(AppDomainSetup.LoaderInformation.DisallowBindingRedirectsValue, AppDomainSetup.DisallowBindingRedirectsKey, fusionContext, oldADS); this.UpdateBooleanContextPropertyIfNeeded(AppDomainSetup.LoaderInformation.DisallowAppBaseProbingValue, AppDomainSetup.DisallowAppBaseProbingKey, fusionContext, oldADS); if (this.UpdateContextPropertyIfNeeded(AppDomainSetup.LoaderInformation.ShadowCopyFilesValue, AppDomainSetup.ShadowCopyFilesKey, this.ShadowCopyFiles, fusionContext, oldADS)) { if (this.Value[7] == null) { this.ShadowCopyDirectories = this.BuildShadowCopyDirectories(); } this.UpdateContextPropertyIfNeeded(AppDomainSetup.LoaderInformation.ShadowCopyDirectoriesValue, AppDomainSetup.ShadowCopyDirectoriesKey, null, fusionContext, oldADS); } this.UpdateContextPropertyIfNeeded(AppDomainSetup.LoaderInformation.CachePathValue, AppDomainSetup.CachePathKey, null, fusionContext, oldADS); this.UpdateContextPropertyIfNeeded(AppDomainSetup.LoaderInformation.PrivateBinPathProbeValue, AppDomainSetup.PrivateBinPathProbeKey, this.PrivateBinPathProbe, fusionContext, oldADS); this.UpdateContextPropertyIfNeeded(AppDomainSetup.LoaderInformation.ConfigurationFileValue, AppDomainSetup.ConfigurationFileKey, null, fusionContext, oldADS); AppDomainSetup.UpdateByteArrayContextPropertyIfNeeded(this._ConfigurationBytes, (oldADS == null) ? null : oldADS.GetConfigurationBytes(), AppDomainSetup.ConfigurationBytesKey, fusionContext); this.UpdateContextPropertyIfNeeded(AppDomainSetup.LoaderInformation.ApplicationNameValue, AppDomainSetup.ApplicationNameKey, this.ApplicationName, fusionContext, oldADS); this.UpdateContextPropertyIfNeeded(AppDomainSetup.LoaderInformation.DynamicBaseValue, AppDomainSetup.DynamicBaseKey, null, fusionContext, oldADS); AppDomainSetup.UpdateContextProperty(fusionContext, AppDomainSetup.MachineConfigKey, RuntimeEnvironment.GetRuntimeDirectoryImpl() + AppDomainSetup.RuntimeConfigurationFile); string hostBindingFile = RuntimeEnvironment.GetHostBindingFile(); if (hostBindingFile != null || oldADS != null) { AppDomainSetup.UpdateContextProperty(fusionContext, AppDomainSetup.HostBindingKey, hostBindingFile); } } [SecurityCritical] [MethodImpl(MethodImplOptions.InternalCall)] internal static extern void UpdateContextProperty(IntPtr fusionContext, string key, object value); internal static int Locate(string s) { if (string.IsNullOrEmpty(s)) { return -1; } char c = s[0]; if (c <= 'L') { switch (c) { case 'A': if (s == "APP_CONFIG_FILE") { return 1; } if (s == "APP_NAME") { return 4; } if (s == "APPBASE") { return 0; } if (s == "APP_CONFIG_BLOB") { return 15; } break; case 'B': if (s == "BINPATH_PROBE_ONLY") { return 6; } break; case 'C': if (s == "CACHE_BASE") { return 9; } if (s == "CODE_DOWNLOAD_DISABLED") { return 12; } break; case 'D': if (s == "DEV_PATH") { return 3; } if (s == "DYNAMIC_BASE") { return 2; } if (s == "DISALLOW_APP") { return 11; } if (s == "DISALLOW_APP_REDIRECTS") { return 13; } if (s == "DISALLOW_APP_BASE_PROBING") { return 14; } break; case 'E': break; case 'F': if (s == "FORCE_CACHE_INSTALL") { return 8; } break; default: if (c == 'L') { if (s == "LICENSE_FILE") { return 10; } } break; } } else { if (c != 'P') { if (c == 'S') { if (s == "SHADOW_COPY_DIRS") { return 7; } } } else { if (s == "PRIVATE_BINPATH") { return 5; } } } return -1; } private string NormalizePath(string path, bool useAppBase) { if (path == null) { return null; } if (!useAppBase) { path = URLString.PreProcessForExtendedPathRemoval(path, false); } int num = path.Length; if (num == 0) { return null; } bool flag = false; if (num > 7 && string.Compare(path, 0, "file:", 0, 5, StringComparison.OrdinalIgnoreCase) == 0) { int num2; if (path[6] == '\\') { if (path[7] == '\\' || path[7] == '/') { if (num > 8 && (path[8] == '\\' || path[8] == '/')) { throw new ArgumentException(Environment.GetResourceString("Argument_InvalidPathChars")); } num2 = 8; } else { num2 = 5; flag = true; } } else { if (path[7] == '/') { num2 = 8; } else { if (num > 8 && path[7] == '\\' && path[8] == '\\') { num2 = 7; } else { num2 = 5; StringBuilder stringBuilder = new StringBuilder(num); for (int i = 0; i < num; i++) { char c = path[i]; if (c == '/') { stringBuilder.Append('\\'); } else { stringBuilder.Append(c); } } path = stringBuilder.ToString(); } flag = true; } } path = path.Substring(num2); num -= num2; } bool flag2; if (flag || (num > 1 && (path[0] == '/' || path[0] == '\\') && (path[1] == '/' || path[1] == '\\'))) { flag2 = false; } else { int num3 = path.IndexOf(':') + 1; flag2 = (num3 == 0 || num <= num3 + 1 || (path[num3] != '/' && path[num3] != '\\') || (path[num3 + 1] != '/' && path[num3 + 1] != '\\')); } if (flag2) { if (useAppBase && (num == 1 || path[1] != ':')) { string text = this.Value[0]; if (text == null || text.Length == 0) { throw new MemberAccessException(Environment.GetResourceString("AppDomain_AppBaseNotSet")); } StringBuilder stringBuilder2 = StringBuilderCache.Acquire(16); bool flag3 = false; if (path[0] == '/' || path[0] == '\\') { string text2 = Path.GetPathRoot(text); if (text2.Length == 0) { int j = text.IndexOf(":/", StringComparison.Ordinal); if (j == -1) { j = text.IndexOf(":\\", StringComparison.Ordinal); } int length = text.Length; for (j++; j < length; j++) { if (text[j] != '/' && text[j] != '\\') { break; } } while (j < length && text[j] != '/' && text[j] != '\\') { j++; } text2 = text.Substring(0, j); } stringBuilder2.Append(text2); flag3 = true; } else { stringBuilder2.Append(text); } int num4 = stringBuilder2.Length - 1; if (stringBuilder2[num4] != '/' && stringBuilder2[num4] != '\\') { if (!flag3) { if (text.IndexOf(":/", StringComparison.Ordinal) == -1) { stringBuilder2.Append('\\'); } else { stringBuilder2.Append('/'); } } } else { if (flag3) { stringBuilder2.Remove(num4, 1); } } stringBuilder2.Append(path); path = StringBuilderCache.GetStringAndRelease(stringBuilder2); } else { path = Path.GetFullPathInternal(path); } } return path; } private bool IsFilePath(string path) { return path[1] == ':' || (path[0] == '\\' && path[1] == '\\'); } [SecurityCritical] private string VerifyDir(string dir, bool normalize) { if (dir != null) { if (dir.Length == 0) { dir = null; } else { if (normalize) { dir = this.NormalizePath(dir, true); } if (this.IsFilePath(dir)) { new FileIOPermission(FileIOPermissionAccess.PathDiscovery, dir).Demand(); } } } return dir; } [SecurityCritical] private void VerifyDirList(string dirs) { if (dirs != null) { string[] array = dirs.Split(new char[] { ';' }); int num = array.Length; for (int i = 0; i < num; i++) { this.VerifyDir(array[i], true); } } } private string BuildShadowCopyDirectories() { string text = this.Value[5]; if (text == null) { return null; } StringBuilder stringBuilder = StringBuilderCache.Acquire(16); string text2 = this.Value[0]; if (text2 != null) { char[] separator = new char[] { ';' }; string[] array = text.Split(separator); int num = array.Length; bool flag = text2[text2.Length - 1] != '/' && text2[text2.Length - 1] != '\\'; if (num == 0) { stringBuilder.Append(text2); if (flag) { stringBuilder.Append('\\'); } stringBuilder.Append(text); } else { for (int i = 0; i < num; i++) { stringBuilder.Append(text2); if (flag) { stringBuilder.Append('\\'); } stringBuilder.Append(array[i]); if (i < num - 1) { stringBuilder.Append(';'); } } } } return StringBuilderCache.GetStringAndRelease(stringBuilder); } } }
using System; internal static class AssemblyRef { internal const string EcmaPublicKey = "b77a5c561934e089"; internal const string EcmaPublicKeyToken = "b77a5c561934e089"; internal const string EcmaPublicKeyFull = "00000000000000000400000000000000"; internal const string SilverlightPublicKey = "31bf3856ad364e35"; internal const string SilverlightPublicKeyToken = "31bf3856ad364e35"; internal const string SilverlightPublicKeyFull = "0024000004800000940000000602000000240000525341310004000001000100B5FC90E7027F67871E773A8FDE8938C81DD402BA65B9201D60593E96C492651E889CC13F1415EBB53FAC1131AE0BD333C5EE6021672D9718EA31A8AEBD0DA0072F25D87DBA6FC90FFD598ED4DA35E44C398C454307E8E33B8426143DAEC9F596836F97C8F74750E5975C64E2189F45DEF46B2A2B1247ADC3652BF5C308055DA9"; internal const string SilverlightPlatformPublicKey = "7cec85d7bea7798e"; internal const string SilverlightPlatformPublicKeyToken = "7cec85d7bea7798e"; internal const string SilverlightPlatformPublicKeyFull = "00240000048000009400000006020000002400005253413100040000010001008D56C76F9E8649383049F383C44BE0EC204181822A6C31CF5EB7EF486944D032188EA1D3920763712CCB12D75FB77E9811149E6148E5D32FBAAB37611C1878DDC19E20EF135D0CB2CFF2BFEC3D115810C3D9069638FE4BE215DBF795861920E5AB6F7DB2E2CEEF136AC23D5DD2BF031700AEC232F6C6B1C785B4305C123B37AB"; internal const string PlatformPublicKey = "b77a5c561934e089"; internal const string PlatformPublicKeyToken = "b77a5c561934e089"; internal const string PlatformPublicKeyFull = "00000000000000000400000000000000"; internal const string Mscorlib = "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; internal const string SystemData = "System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; internal const string SystemDataOracleClient = "System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; internal const string System = "System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; internal const string SystemCore = "System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; internal const string SystemNumerics = "System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; internal const string SystemRuntimeRemoting = "System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; internal const string SystemThreadingTasksDataflow = "System.Threading.Tasks.Dataflow, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; internal const string SystemWindowsForms = "System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; internal const string SystemXml = "System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; internal const string MicrosoftPublicKey = "b03f5f7f11d50a3a"; internal const string MicrosoftPublicKeyToken = "b03f5f7f11d50a3a"; internal const string MicrosoftPublicKeyFull = "002400000480000094000000060200000024000052534131000400000100010007D1FA57C4AED9F0A32E84AA0FAEFD0DE9E8FD6AEC8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B723CF980957FC4E177108FC607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622CAA652C1DFAD63D745D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293"; internal const string SharedLibPublicKey = "31bf3856ad364e35"; internal const string SharedLibPublicKeyToken = "31bf3856ad364e35"; internal const string SharedLibPublicKeyFull = "0024000004800000940000000602000000240000525341310004000001000100B5FC90E7027F67871E773A8FDE8938C81DD402BA65B9201D60593E96C492651E889CC13F1415EBB53FAC1131AE0BD333C5EE6021672D9718EA31A8AEBD0DA0072F25D87DBA6FC90FFD598ED4DA35E44C398C454307E8E33B8426143DAEC9F596836F97C8F74750E5975C64E2189F45DEF46B2A2B1247ADC3652BF5C308055DA9"; internal const string SystemComponentModelDataAnnotations = "System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"; internal const string SystemConfiguration = "System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemConfigurationInstall = "System.Configuration.Install, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemDeployment = "System.Deployment, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemDesign = "System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemDirectoryServices = "System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemDrawingDesign = "System.Drawing.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemDrawing = "System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemEnterpriseServices = "System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemManagement = "System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemMessaging = "System.Messaging, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemNetHttp = "System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemNetHttpWebRequest = "System.Net.Http.WebRequest, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemRuntimeSerializationFormattersSoap = "System.Runtime.Serialization.Formatters.Soap, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemRuntimeWindowsRuntime = "System.Runtime.WindowsRuntime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; internal const string SystemRuntimeWindowsRuntimeUIXaml = "System.Runtime.WindowsRuntimeUIXaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; internal const string SystemSecurity = "System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemServiceModelWeb = "System.ServiceModel.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"; internal const string SystemServiceProcess = "System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemWeb = "System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemWebAbstractions = "System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"; internal const string SystemWebDynamicData = "System.Web.DynamicData, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"; internal const string SystemWebDynamicDataDesign = "System.Web.DynamicData.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"; internal const string SystemWebEntityDesign = "System.Web.Entity.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"; internal const string SystemWebExtensions = "System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"; internal const string SystemWebExtensionsDesign = "System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"; internal const string SystemWebMobile = "System.Web.Mobile, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemWebRegularExpressions = "System.Web.RegularExpressions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string SystemWebRouting = "System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"; internal const string SystemWebServices = "System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string WindowsBase = "WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"; internal const string MicrosoftVisualStudio = "Microsoft.VisualStudio, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string MicrosoftVisualStudioWindowsForms = "Microsoft.VisualStudio.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string VJSharpCodeProvider = "VJSharpCodeProvider, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string ASPBrowserCapsPublicKey = "b7bd7678b977bd8f"; internal const string ASPBrowserCapsFactory = "ASP.BrowserCapsFactory, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b7bd7678b977bd8f"; internal const string MicrosoftVSDesigner = "Microsoft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string MicrosoftVisualStudioWeb = "Microsoft.VisualStudio.Web, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string MicrosoftWebDesign = "Microsoft.Web.Design.Client, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string MicrosoftVSDesignerMobile = "Microsoft.VSDesigner.Mobile, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; internal const string MicrosoftJScript = "Microsoft.JScript, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"; }
using System; internal static class ThisAssembly { internal const string Title = "mscorlib.dll"; internal const string Description = "mscorlib.dll"; internal const string DefaultAlias = "mscorlib.dll"; internal const string Copyright = "© Microsoft Corporation. All rights reserved."; internal const string Version = "4.0.0.0"; internal const string InformationalVersion = "4.0.30319.18444"; internal const string DailyBuildNumberStr = "30319"; internal const string BuildRevisionStr = "18444"; internal const int DailyBuildNumber = 30319; }
using System; internal static class ThisAssembly { internal const string Title = "mscorlib.dll"; internal const string Description = "mscorlib.dll"; internal const string DefaultAlias = "mscorlib.dll"; internal const string Copyright = "© Microsoft Corporation. All rights reserved."; internal const string Version = "4.0.0.0"; internal const string InformationalVersion = "4.0.30319.18444"; internal const string DailyBuildNumberStr = "30319"; internal const string BuildRevisionStr = "18444"; internal const int DailyBuildNumber = 30319; }
public virtual String DisplayName { [System.Security.SecuritySafeCritical] // auto-generated get { // return (this.m_cultureData.SLOCALIZED----); return (this.m_cultureData.SLOCALIZEDCOUNTRY); } }