diff options
Diffstat (limited to 'src/WixToolset.Core.WindowsInstaller/MsmBackend.cs')
-rw-r--r-- | src/WixToolset.Core.WindowsInstaller/MsmBackend.cs | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/MsmBackend.cs b/src/WixToolset.Core.WindowsInstaller/MsmBackend.cs index de9c4162..84588572 100644 --- a/src/WixToolset.Core.WindowsInstaller/MsmBackend.cs +++ b/src/WixToolset.Core.WindowsInstaller/MsmBackend.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. | 1 | // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. |
2 | 2 | ||
3 | namespace WixToolset.Core.WindowsInstaller | 3 | namespace WixToolset.Core.WindowsInstaller |
4 | { | 4 | { |
@@ -43,9 +43,26 @@ namespace WixToolset.Core.WindowsInstaller | |||
43 | return result; | 43 | return result; |
44 | } | 44 | } |
45 | 45 | ||
46 | public BindResult Decompile(IDecompileContext context) | 46 | public DecompileResult Decompile(IDecompileContext context) |
47 | { | 47 | { |
48 | throw new NotImplementedException(); | 48 | var extensionManager = context.ServiceProvider.GetService<IExtensionManager>(); |
49 | |||
50 | var backendExtensions = extensionManager.Create<IWindowsInstallerBackendDecompilerExtension>(); | ||
51 | |||
52 | foreach (var extension in backendExtensions) | ||
53 | { | ||
54 | extension.PreBackendDecompile(context); | ||
55 | } | ||
56 | |||
57 | var command = new DecompileMsiOrMsmCommand(context, backendExtensions); | ||
58 | var result = command.Execute(); | ||
59 | |||
60 | foreach (var extension in backendExtensions) | ||
61 | { | ||
62 | extension.PostBackendDecompile(result); | ||
63 | } | ||
64 | |||
65 | return result; | ||
49 | } | 66 | } |
50 | 67 | ||
51 | public bool Inscribe(IInscribeContext context) | 68 | public bool Inscribe(IInscribeContext context) |