public PackageAssembly(string assemblyName, Rule rule, NativeManifest policyManifest) { Name = assemblyName; Rule = rule; _assemblyManifest = policyManifest; _isPolicy = true; _files = Enumerable.Empty<FileEntry>(); }
protected override unsafe void DisposeUnmanaged() { base.DisposeUnmanaged(); if (Handle == null || Handle.IsInvalid) { return; } Handle.Dispose(); Handle = null; }
private void CreateNativeAssemblyPolicies() { var nativeAssemblies = Assemblies.Where(each => each.IsNative).ToArray(); foreach (var nativeAssembly in nativeAssemblies) { foreach (var oldVersion in _versionRedirects) { var policyAssemblyName = "policy.{0}.{1}".format(oldVersion.ToString(), nativeAssembly.Name); var policyManifest = new NativeManifest(null) { AssemblyName = policyAssemblyName, AssemblyArchitecture = Architecture, AssemblyPublicKeyToken = PublicKeyToken, AssemblyType = AssemblyType.win32policy, AssemblyVersion = Version }; policyManifest.AddDependency(nativeAssembly.Name, 0L, Architecture, PublicKeyToken, "*", AssemblyType.win32, BindingRedirect); Assemblies.Add(new PackageAssembly(policyAssemblyName, null, policyManifest)); } } }