Wix setup project (#198)
* in progress, tryng to figure out how to best handle different error modes * Revert "in progress, tryng to figure out how to best handle different error modes" This reverts commit e9ab631ba32e0d23bff547fa06a78e4e84d2d977. * playing around with trying to get full ui (instead of basic ui) when double clicked from ARP * Progress so far on getting the full UX to show up on uninstall through ARP. * mostly working, may need to tweak UI locations/wordings * Rename things and add comments * remove bad indentation in product.wxs
This commit is contained in:
Родитель
76ee121ba2
Коммит
bbbaf9d635
|
@ -0,0 +1,32 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<configuration>
|
||||
<startup useLegacyV2RuntimeActivationPolicy="true">
|
||||
|
||||
<!--
|
||||
Use supportedRuntime tags to explicitly specify the version(s) of the .NET Framework runtime that
|
||||
the custom action should run on. If no versions are specified, the chosen version of the runtime
|
||||
will be the "best" match to what Microsoft.Deployment.WindowsInstaller.dll was built against.
|
||||
|
||||
WARNING: leaving the version unspecified is dangerous as it introduces a risk of compatibility
|
||||
problems with future versions of the .NET Framework runtime. It is highly recommended that you specify
|
||||
only the version(s) of the .NET Framework runtime that you have tested against.
|
||||
|
||||
Note for .NET Framework v3.0 and v3.5, the runtime version is still v2.0.
|
||||
|
||||
In order to enable .NET Framework version 2.0 runtime activation policy, which is to load all assemblies
|
||||
by using the latest supported runtime, @useLegacyV2RuntimeActivationPolicy="true".
|
||||
|
||||
For more information, see http://msdn.microsoft.com/en-us/library/bbx34a2h.aspx
|
||||
-->
|
||||
|
||||
<supportedRuntime version="v4.0" />
|
||||
<supportedRuntime version="v2.0.50727"/>
|
||||
|
||||
</startup>
|
||||
|
||||
<!--
|
||||
Add additional configuration settings here. For more information on application config files,
|
||||
see http://msdn.microsoft.com/en-us/library/kza1yk3a.aspx
|
||||
-->
|
||||
|
||||
</configuration>
|
|
@ -0,0 +1,73 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using Microsoft.Deployment.WindowsInstaller;
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace GetMsixmgrProducts
|
||||
{
|
||||
public class CustomActions
|
||||
{
|
||||
[CustomAction]
|
||||
public static ActionResult GetMsixmgrProducts(Session session)
|
||||
{
|
||||
session.Log("Begin GetMsixmgrProducts");
|
||||
|
||||
// Determine all the MSIX packages installed by the msixmgr installed to this location.
|
||||
// It could be possible other MSIX packages are installed using msixmgrLib or clickonce msixmgr.
|
||||
// So, we check the Uninstall key specifically for the install location this uninstall would uninstall
|
||||
// instead of using msixmgr to enumerate products
|
||||
String msixmgrInstalledProducts = "";
|
||||
session.Log(session["INSTALLFOLDER"]);
|
||||
|
||||
using (RegistryKey hklm64 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64))
|
||||
{
|
||||
using (RegistryKey uninstallKey = hklm64.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", false))
|
||||
{
|
||||
if (uninstallKey != null)
|
||||
{
|
||||
foreach (String uninstallKeyName in uninstallKey.GetSubKeyNames())
|
||||
{
|
||||
session.Log("Uninstallkeyname " + uninstallKeyName);
|
||||
using (RegistryKey productKey = uninstallKey.OpenSubKey(uninstallKeyName, false))
|
||||
{
|
||||
if (productKey != null)
|
||||
{
|
||||
String uninstallString = (String)productKey.GetValue("UninstallString", "");
|
||||
|
||||
if (uninstallString.Length > 0)
|
||||
{
|
||||
session.Log("UninstallString " + uninstallString);
|
||||
if (uninstallString.Contains(session["INSTALLFOLDER"]))
|
||||
{
|
||||
// found a product, add the displayName to our string to return
|
||||
String displayName = (String)productKey.GetValue("DisplayName", uninstallKeyName);
|
||||
|
||||
if (msixmgrInstalledProducts.Length > 0)
|
||||
{
|
||||
msixmgrInstalledProducts += " ";
|
||||
}
|
||||
msixmgrInstalledProducts += displayName;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
session.Log("Products found: " + msixmgrInstalledProducts);
|
||||
if (msixmgrInstalledProducts.Length > 0)
|
||||
{
|
||||
session["MSIXMGR_PRODUCTS"] = msixmgrInstalledProducts;
|
||||
}
|
||||
else
|
||||
{
|
||||
session["WixUI_InstallMode"] = "Remove";
|
||||
}
|
||||
|
||||
return ActionResult.Success;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||
<ProductVersion>8.0.30703</ProductVersion>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<ProjectGuid>{048748AB-B84C-4CEC-A468-3F6914953A3D}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>GetMsixmgrProducts</RootNamespace>
|
||||
<AssemblyName>GetMsixmgrProducts</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Xml" />
|
||||
<Reference Include="Microsoft.Deployment.WindowsInstaller">
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="GetMsixmgrProducts.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Content Include="CustomAction.config" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
<Import Project="$(WixCATargetsPath)" Condition=" '$(WixCATargetsPath)' != '' " />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.CA.targets" Condition=" '$(WixCATargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.CA.targets') " />
|
||||
<Target Name="EnsureWixToolsetInstalled" Condition=" '$(WixCATargetsImported)' != 'true' ">
|
||||
<Error Text="The WiX Toolset v3.11 (or newer) build tools must be installed to build this project. To download the WiX Toolset, see http://wixtoolset.org/releases/" />
|
||||
</Target>
|
||||
</Project>
|
|
@ -0,0 +1,35 @@
|
|||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
[assembly: AssemblyTitle("GetMsixmgrProducts")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyCompany("Microsoft")]
|
||||
[assembly: AssemblyProduct("GetMsixmgrProducts")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2019")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Setting ComVisible to false makes the types in this assembly not visible
|
||||
// to COM components. If you need to access a type in this assembly from
|
||||
// COM, set the ComVisible attribute to true on that type.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||
[assembly: Guid("048748ab-b84c-4cec-a468-3f6914953a3d")]
|
||||
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Build and Revision Numbers
|
||||
// by using the '*' as shown below:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||
<ProductVersion>3.10</ProductVersion>
|
||||
<ProjectGuid>ce395dc5-a1d0-4a35-8699-fc57a84ccf48</ProjectGuid>
|
||||
<SchemaVersion>2.0</SchemaVersion>
|
||||
<OutputName>MsixMgrSetup</OutputName>
|
||||
<OutputType>Package</OutputType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
|
||||
<OutputPath>bin\$(Configuration)\</OutputPath>
|
||||
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
|
||||
<DefineConstants>Debug</DefineConstants>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
|
||||
<OutputPath>bin\$(Configuration)\</OutputPath>
|
||||
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Product.wxs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\msixmgr\msixmgr.vcxproj">
|
||||
<Name>msixmgr</Name>
|
||||
<Project>{aad31763-5e65-47fd-958a-08e35ab83025}</Project>
|
||||
<Private>True</Private>
|
||||
<DoNotHarvest>True</DoNotHarvest>
|
||||
<RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>
|
||||
<RefTargetDir>INSTALLFOLDER</RefTargetDir>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<WixExtension Include="WixUIExtension">
|
||||
<HintPath>$(WixExtDir)\WixUIExtension.dll</HintPath>
|
||||
<Name>WixUIExtension</Name>
|
||||
</WixExtension>
|
||||
</ItemGroup>
|
||||
<Import Project="$(WixTargetsPath)" Condition=" '$(WixTargetsPath)' != '' " />
|
||||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets" Condition=" '$(WixTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets') " />
|
||||
<Target Name="EnsureWixToolsetInstalled" Condition=" '$(WixTargetsImported)' != 'true' ">
|
||||
<Error Text="The WiX Toolset v3.11 (or newer) build tools must be installed to build this project. To download the WiX Toolset, see http://wixtoolset.org/releases/" />
|
||||
</Target>
|
||||
<!--
|
||||
To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Wix.targets.
|
||||
<Target Name="BeforeBuild">
|
||||
</Target>
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
|
@ -0,0 +1,147 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
|
||||
<Product Id="*" Name="MsixMgr" Language="1033" Version="1.0.0.0" Manufacturer="Microsoft" UpgradeCode="2fe180f8-3fb8-48a0-b01e-68f47fc0ec34">
|
||||
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
|
||||
|
||||
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
|
||||
<MediaTemplate EmbedCab="yes" />
|
||||
|
||||
<Feature Id="ProductFeature" Title="MsixMgrWix" Level="1">
|
||||
<ComponentGroupRef Id="ProductComponents" />
|
||||
<ComponentGroupRef Id="Assets" />
|
||||
</Feature>
|
||||
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" />
|
||||
<UIRef Id="WixUI_InstallDir_Custom"/>
|
||||
<InstallUISequence>
|
||||
<Custom Action='GetMsixmgrProductsCA' Before='RemoveConfirmationDlg'>Installed AND NOT RESUME AND NOT Preselected AND NOT PATCH</Custom>
|
||||
</InstallUISequence>
|
||||
</Product>
|
||||
|
||||
<Fragment>
|
||||
<Directory Id="TARGETDIR" Name="SourceDir">
|
||||
<Directory Id="ProgramFilesFolder">
|
||||
<Directory Id="INSTALLFOLDER" Name="MsixMgr">
|
||||
<Directory Id="Assets" Name="Assets"/>
|
||||
</Directory>
|
||||
</Directory>
|
||||
</Directory>
|
||||
</Fragment>
|
||||
|
||||
<Fragment>
|
||||
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
|
||||
|
||||
<Component Id="MsixMgrExe">
|
||||
<File Source="$(var.msixmgr.TargetPath)" />
|
||||
<ProgId Id="APPX" Description="Extracts package, reads manifest and unpacks VFS" Icon="MsixIcon" IconIndex="0" Advertise="yes">
|
||||
<Extension Id="appx" Advertise="yes">
|
||||
<Verb Id="open" Command="&Open" Argument="-AddPackage "%1"" />
|
||||
</Extension>
|
||||
</ProgId>
|
||||
<ProgId Id="MSIX" Description="Extracts package, reads manifest and unpacks VFS" Icon="MsixIcon" IconIndex="0" Advertise="yes">
|
||||
<Extension Id="msix" Advertise="yes">
|
||||
<Verb Id="open" Command="&Open" Argument="-AddPackage "%1"" />
|
||||
</Extension>
|
||||
</ProgId>
|
||||
</Component>
|
||||
<Component Id="MsixDll">
|
||||
<File Source="$(var.msixmgr.TargetDir)\msix.dll" />
|
||||
</Component>
|
||||
|
||||
</ComponentGroup>
|
||||
<ComponentGroup Id="Assets" Directory="Assets">
|
||||
<Component Id="MsixIcon">
|
||||
<File Source="msixicon.ico" />
|
||||
</Component>
|
||||
</ComponentGroup>
|
||||
</Fragment>
|
||||
|
||||
<Fragment>
|
||||
<Icon Id="MsixIcon" SourceFile="msixicon.ico" />
|
||||
</Fragment>
|
||||
|
||||
<Fragment>
|
||||
<UI>
|
||||
<!-- Based off of the Maintenance dialog, we only allow Remove; we only show this dialog to warn of msixmgr apps that need to be removed-->
|
||||
<Dialog Id="RemoveConfirmationDlg" Width="370" Height="270" Title="!(loc.MaintenanceTypeDlg_Title)">
|
||||
<Control Id="RemoveButton" Type="PushButton" X="40" Y="171" Width="80" Height="17" ToolTip="!(loc.MaintenanceTypeDlgRemoveButtonTooltip)" Text="&Remove Anyway">
|
||||
<Publish Property="WixUI_InstallMode" Value="Remove">1</Publish>
|
||||
</Control>
|
||||
<Control Id="WarningText" Type="Text" X="40" Y="81" Width="280" Height="40" NoPrefix="yes" Text="{\WixUI_Font_Title}Warning - removing this will cause the following app(s) installed by this to be unremovable: [MSIXMGR_PRODUCTS]. These app(s) should be removed before proceeding" Hidden="yes">
|
||||
<Condition Action="show">MSIXMGR_PRODUCTS</Condition>
|
||||
</Control>
|
||||
<Control Id="RemoveText" Type="Text" X="60" Y="191" Width="280" Height="20" NoPrefix="yes" Text="!(loc.MaintenanceTypeDlgRemoveText)">
|
||||
</Control>
|
||||
<Control Id="Cancel" Type="PushButton" X="304" Y="243" Width="56" Height="17" Cancel="yes" Text="!(loc.WixUICancel)">
|
||||
<Publish Event="SpawnDialog" Value="CancelDlg">1</Publish>
|
||||
</Control>
|
||||
<Control Id="BannerBitmap" Type="Bitmap" X="0" Y="0" Width="370" Height="44" TabSkip="no" Text="!(loc.MaintenanceTypeDlgBannerBitmap)" />
|
||||
<Control Id="BannerLine" Type="Line" X="0" Y="44" Width="370" Height="0" />
|
||||
<Control Id="BottomLine" Type="Line" X="0" Y="234" Width="370" Height="0" />
|
||||
<Control Id="Title" Type="Text" X="15" Y="6" Width="340" Height="15" Transparent="yes" NoPrefix="yes" Text="{\WixUI_Font_Title}Remove Installation" />
|
||||
<Control Id="Description" Type="Text" X="25" Y="23" Width="340" Height="20" Transparent="yes" NoPrefix="yes" Text="!(loc.MaintenanceTypeDlgDescription)" />
|
||||
</Dialog>
|
||||
<InstallUISequence>
|
||||
<Show Dialog="RemoveConfirmationDlg" Before="ProgressDlg">Installed AND NOT RESUME AND NOT Preselected AND NOT PATCH AND MSIXMGR_PRODUCTS</Show>
|
||||
<Show Dialog="VerifyReadyDlg" Before="ProgressDlg">Installed AND NOT RESUME AND NOT Preselected AND NOT PATCH AND NOT MSIXMGR_PRODUCTS</Show>
|
||||
</InstallUISequence>
|
||||
</UI>
|
||||
|
||||
</Fragment>
|
||||
|
||||
<Fragment>
|
||||
<UI Id="WixUI_InstallDir_Custom">
|
||||
<TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
|
||||
<TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
|
||||
<TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
|
||||
|
||||
<Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
|
||||
<Property Id="WixUI_Mode" Value="InstallDir" />
|
||||
|
||||
<DialogRef Id="BrowseDlg" />
|
||||
<DialogRef Id="DiskCostDlg" />
|
||||
<DialogRef Id="ErrorDlg" />
|
||||
<DialogRef Id="FatalError" />
|
||||
<DialogRef Id="FilesInUse" />
|
||||
<DialogRef Id="MsiRMFilesInUse" />
|
||||
<DialogRef Id="PrepareDlg" />
|
||||
<DialogRef Id="ProgressDlg" />
|
||||
<DialogRef Id="ResumeDlg" />
|
||||
<DialogRef Id="UserExit" />
|
||||
|
||||
<Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath" Order="3">1</Publish>
|
||||
<Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
|
||||
|
||||
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
|
||||
|
||||
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg">NOT Installed</Publish>
|
||||
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">Installed AND PATCH</Publish>
|
||||
|
||||
<Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2">NOT WIXUI_DONTVALIDATEPATH</Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"</Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
|
||||
<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>
|
||||
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="InstallDirDlg" Order="1">NOT Installed</Publish>
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="RemoveConfirmationDlg" Order="2">Installed AND NOT PATCH</Publish>
|
||||
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">Installed AND PATCH</Publish>
|
||||
|
||||
<Publish Dialog="RemoveConfirmationDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
|
||||
|
||||
<!-- ARPNOREPAIR+ARPNOREMOVE are specified to force the MODIFY verb, which will display maintenance UI as the only option in Add/remove Programs-->
|
||||
<Property Id="ARPNOREPAIR" Value="1" />
|
||||
<Property Id="ARPNOREMOVE" Value="1" />
|
||||
</UI>
|
||||
|
||||
<UIRef Id="WixUI_Common" />
|
||||
</Fragment>
|
||||
|
||||
<Fragment>
|
||||
<!--This custom action populates MSIXMGR_PRODUCTS with the list of msixmgr-installed packages still installed-->
|
||||
<CustomAction Id='GetMsixmgrProductsCA' BinaryKey='GetMsixmgrProductsCA' DllEntry='GetMsixmgrProducts' Execute='immediate' Return='check'/>
|
||||
<Binary Id='GetMsixmgrProductsCA' SourceFile='$(var.SolutionDir)\GetMsixmgrProductsCA\bin\Release\GetMsixmgrProducts.CA.dll'/>
|
||||
</Fragment>
|
||||
|
||||
</Wix>
|
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 27 KiB |
|
@ -16,6 +16,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
|
|||
.editorconfig = .editorconfig
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "MsixMgrWix", "MsixMgrWix\MsixMgrWix.wixproj", "{CE395DC5-A1D0-4A35-8699-FC57A84CCF48}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GetMsixmgrProducts", "GetMsixmgrProductsCA\GetMsixmgrProducts.csproj", "{048748AB-B84C-4CEC-A468-3F6914953A3D}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|x64 = Debug|x64
|
||||
|
@ -48,6 +52,18 @@ Global
|
|||
{46BE19BD-72E0-4452-9919-33A1F8A5F064}.Release|x64.Build.0 = Release|x64
|
||||
{46BE19BD-72E0-4452-9919-33A1F8A5F064}.Release|x86.ActiveCfg = Release|Win32
|
||||
{46BE19BD-72E0-4452-9919-33A1F8A5F064}.Release|x86.Build.0 = Release|Win32
|
||||
{CE395DC5-A1D0-4A35-8699-FC57A84CCF48}.Debug|x64.ActiveCfg = Debug|x86
|
||||
{CE395DC5-A1D0-4A35-8699-FC57A84CCF48}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{CE395DC5-A1D0-4A35-8699-FC57A84CCF48}.Debug|x86.Build.0 = Debug|x86
|
||||
{CE395DC5-A1D0-4A35-8699-FC57A84CCF48}.Release|x64.ActiveCfg = Release|x86
|
||||
{CE395DC5-A1D0-4A35-8699-FC57A84CCF48}.Release|x86.ActiveCfg = Release|x86
|
||||
{CE395DC5-A1D0-4A35-8699-FC57A84CCF48}.Release|x86.Build.0 = Release|x86
|
||||
{048748AB-B84C-4CEC-A468-3F6914953A3D}.Debug|x64.ActiveCfg = Debug|x86
|
||||
{048748AB-B84C-4CEC-A468-3F6914953A3D}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{048748AB-B84C-4CEC-A468-3F6914953A3D}.Debug|x86.Build.0 = Debug|x86
|
||||
{048748AB-B84C-4CEC-A468-3F6914953A3D}.Release|x64.ActiveCfg = Release|x86
|
||||
{048748AB-B84C-4CEC-A468-3F6914953A3D}.Release|x86.ActiveCfg = Release|x86
|
||||
{048748AB-B84C-4CEC-A468-3F6914953A3D}.Release|x86.Build.0 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
Загрузка…
Ссылка в новой задаче