diff options
Diffstat (limited to 'src/WixToolset.Core.WindowsInstaller/MsiBackend.cs')
-rw-r--r-- | src/WixToolset.Core.WindowsInstaller/MsiBackend.cs | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/WixToolset.Core.WindowsInstaller/MsiBackend.cs b/src/WixToolset.Core.WindowsInstaller/MsiBackend.cs index 579977fe..b633ea31 100644 --- a/src/WixToolset.Core.WindowsInstaller/MsiBackend.cs +++ b/src/WixToolset.Core.WindowsInstaller/MsiBackend.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 | { |
@@ -38,9 +38,26 @@ namespace WixToolset.Core.WindowsInstaller | |||
38 | return result; | 38 | return result; |
39 | } | 39 | } |
40 | 40 | ||
41 | public BindResult Decompile(IDecompileContext context) | 41 | public DecompileResult Decompile(IDecompileContext context) |
42 | { | 42 | { |
43 | throw new NotImplementedException(); | 43 | var extensionManager = context.ServiceProvider.GetService<IExtensionManager>(); |
44 | |||
45 | var backendExtensions = extensionManager.Create<IWindowsInstallerBackendDecompilerExtension>(); | ||
46 | |||
47 | foreach (var extension in backendExtensions) | ||
48 | { | ||
49 | extension.PreBackendDecompile(context); | ||
50 | } | ||
51 | |||
52 | var command = new DecompileMsiOrMsmCommand(context, backendExtensions); | ||
53 | var result = command.Execute(); | ||
54 | |||
55 | foreach (var extension in backendExtensions) | ||
56 | { | ||
57 | extension.PostBackendDecompile(result); | ||
58 | } | ||
59 | |||
60 | return result; | ||
44 | } | 61 | } |
45 | 62 | ||
46 | public bool Inscribe(IInscribeContext context) | 63 | public bool Inscribe(IInscribeContext context) |