private EmbeddedManifestReader(string path)
 {
     IntPtr zero = IntPtr.Zero;
     try
     {
         zero = Microsoft.Build.Tasks.Deployment.ManifestUtilities.NativeMethods.LoadLibraryExW(path, IntPtr.Zero, 2);
         if (zero != IntPtr.Zero)
         {
             Microsoft.Build.Tasks.Deployment.ManifestUtilities.NativeMethods.EnumResNameProc enumFunc = new Microsoft.Build.Tasks.Deployment.ManifestUtilities.NativeMethods.EnumResNameProc(this.EnumResNameCallback);
             Microsoft.Build.Tasks.Deployment.ManifestUtilities.NativeMethods.EnumResourceNames(zero, Microsoft.Build.Tasks.Deployment.ManifestUtilities.NativeMethods.RT_MANIFEST, enumFunc, IntPtr.Zero);
         }
     }
     finally
     {
         if (zero != IntPtr.Zero)
         {
             Microsoft.Build.Tasks.Deployment.ManifestUtilities.NativeMethods.FreeLibrary(zero);
         }
     }
 }
        private EmbeddedManifestReader(string path)
        {
            IntPtr zero = IntPtr.Zero;

            try
            {
                zero = Microsoft.Build.Tasks.Deployment.ManifestUtilities.NativeMethods.LoadLibraryExW(path, IntPtr.Zero, 2);
                if (zero != IntPtr.Zero)
                {
                    Microsoft.Build.Tasks.Deployment.ManifestUtilities.NativeMethods.EnumResNameProc enumFunc = new Microsoft.Build.Tasks.Deployment.ManifestUtilities.NativeMethods.EnumResNameProc(this.EnumResNameCallback);
                    Microsoft.Build.Tasks.Deployment.ManifestUtilities.NativeMethods.EnumResourceNames(zero, Microsoft.Build.Tasks.Deployment.ManifestUtilities.NativeMethods.RT_MANIFEST, enumFunc, IntPtr.Zero);
                }
            }
            finally
            {
                if (zero != IntPtr.Zero)
                {
                    Microsoft.Build.Tasks.Deployment.ManifestUtilities.NativeMethods.FreeLibrary(zero);
                }
            }
        }