mirror of
https://github.com/stride3d/stride.git
synced 2026-10-12 02:23:23 +00:00
build: drop obsolete install prerequisites and legacy Win7/8 support
- prerequisites.aip: remove .NET Framework 4.7.2 and DirectX (DXSETUP); keep VC++ x64 (evergreen URL) + .NET SDK 10 - launcher: remove launcher-prerequisites installer and PrerequisitesValidator (self-contained net10 needs no .NET FW) - VC++ runtime build checks: unify, make arch-aware (x64/ARM64), use evergreen redist URLs, drop x86, fix x64/ARM64 detection - XAudio2: drop Win7/Win8 fallbacks, use in-box XAudio2_9 only
This commit is contained in:
+2
-9
@@ -36,7 +36,7 @@ Example: dotnet build build/Stride.build -t:Package
|
||||
</Target>
|
||||
|
||||
<!-- Build an AdvancedInstaller .aip ($(StrideInstallerAip)), signing inline when StrideSign.
|
||||
Was duplicated across PrerequisitesInstaller / PackageInstaller / LauncherPrerequisitesInstaller.
|
||||
Shared by PrerequisitesInstaller and PackageInstaller.
|
||||
The secret goes via EnvironmentVariables (not the command line) — AdvancedInstaller reads it. -->
|
||||
<Target Name="_BuildAdvancedInstaller" DependsOnTargets="SignCredentialsCheck">
|
||||
<Exec Condition="'$(StrideSign)' == 'true'" Command='"$(AdvancedInstallerPath)" /edit "$(StrideInstallerAip)" /SetAzureKeyVaultParameters -tenant_id $(StrideSignTenantId) -app_id $(StrideSignClientId) -vault_name $(StrideSignKeyVaultName) -certificate_name $(StrideSignKeyVaultCertificate) -enable_signing ' />
|
||||
@@ -223,7 +223,7 @@ Example: dotnet build build/Stride.build -t:Package
|
||||
<!--
|
||||
Package Launcher
|
||||
-->
|
||||
<Target Name="PackageLauncher" DependsOnTargets="LauncherPrerequisitesInstaller">
|
||||
<Target Name="PackageLauncher">
|
||||
<ItemGroup>
|
||||
<FilesToDeleteLauncher Include="$(StrideRoot)bin\launcher\*.nupkg"/>
|
||||
</ItemGroup>
|
||||
@@ -248,13 +248,6 @@ Example: dotnet build build/Stride.build -t:Package
|
||||
<Copy SourceFiles="$(StrideRoot)sources\launcher\Setup\setup-SetupFiles\StrideSetup.exe" DestinationFolder="$(StrideRoot)bin\launcher"/>
|
||||
</Target>
|
||||
|
||||
<!--
|
||||
Package Installer: launcher-prerequisites.exe
|
||||
-->
|
||||
<Target Name="LauncherPrerequisitesInstaller">
|
||||
<MSBuild Projects="$(MSBuildThisFileFullPath)" Targets="_BuildAdvancedInstaller" Properties="StrideInstallerAip=$(StrideRoot)sources\launcher\Prerequisites\launcher-prerequisites.aip" />
|
||||
</Target>
|
||||
|
||||
<!--
|
||||
Perform a full build: Build, Package and PackageInstaller
|
||||
-->
|
||||
|
||||
+25
-23
@@ -1,30 +1,32 @@
|
||||
<Project InitialTargets="_StrideCheckVisualCRuntime2019" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<!-- Check if Visual C++ Runtime 2019 is properly installed -->
|
||||
<Project InitialTargets="_StrideCheckVisualCRuntime" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<!-- Check the Visual C++ Runtime needed by Stride's native libraries is installed -->
|
||||
<!-- Should be moved to Stride.Assets as soon as transitive build dependencies are enabled by default in VS2019 (https://github.com/NuGet/Home/issues/6091#issuecomment-438073285) -->
|
||||
<Target Name="_StrideCheckVisualCRuntime2019" Condition="'$(MSBuildRuntimeType)' == 'Full'">
|
||||
<ItemGroup>
|
||||
<!-- VC++ versions:
|
||||
- 2015: Bld = 23026
|
||||
- 2017: Bld = 26020
|
||||
- 2019: Bld = 27820
|
||||
- 2022: Bld = 33130
|
||||
See also https://learn.microsoft.com/en-us/cpp/windows/redistributing-visual-cpp-files?#install-the-redistributable-packages
|
||||
-->
|
||||
<_StrideVisualCRuntime2019 Include="Visual C++ Redistributable for Visual Studio 2019 x86">
|
||||
<Version>$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\X86', 'Bld', null, RegistryView.Registry32))</Version>
|
||||
<ExpectedVersion>27820</ExpectedVersion>
|
||||
<DownloadUrl>https://aka.ms/vs/17/release/vc_redist.x86.exe</DownloadUrl>
|
||||
</_StrideVisualCRuntime2019>
|
||||
<_StrideVisualCRuntime2019 Include="Visual C++ Redistributable for Visual Studio 2019 x64">
|
||||
<Version>$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\X64', 'Bld', null, RegistryView.Registry64))</Version>
|
||||
<ExpectedVersion>27820</ExpectedVersion>
|
||||
<DownloadUrl>https://aka.ms/vs/17/release/vc_redist.x64.exe</DownloadUrl>
|
||||
</_StrideVisualCRuntime2019>
|
||||
<Target Name="_StrideCheckVisualCRuntime" Condition="'$(MSBuildRuntimeType)' == 'Full'">
|
||||
<PropertyGroup>
|
||||
<IsWindowsARM64 Condition="$([MSBuild]::IsOsPlatform('Windows')) And $([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture) == ARM64">true</IsWindowsARM64>
|
||||
</PropertyGroup>
|
||||
|
||||
<_StrideVisualCRuntime2019NotInstalled Include="@(_StrideVisualCRuntime2019)" Condition="'%(_StrideVisualCRuntime2019.Version)' == '' Or $([System.Int32]::Parse('%(Version)').CompareTo($([System.Int32]::Parse('%(_StrideVisualCRuntime2019.ExpectedVersion)')))) < 0" />
|
||||
<ItemGroup Condition="'$(IsWindowsARM64)' != 'true'">
|
||||
<_StrideVisualCRuntime Include="Visual C++ Redistributable (x64)">
|
||||
<Version>$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\VC\Servicing\14.0\RuntimeMinimum', 'Version', null, RegistryView.Registry64))</Version>
|
||||
<ExpectedVersion>14.22.27821</ExpectedVersion>
|
||||
<DownloadUrl>https://aka.ms/vs/17/release/vc_redist.x64.exe</DownloadUrl>
|
||||
</_StrideVisualCRuntime>
|
||||
</ItemGroup>
|
||||
|
||||
<Error Condition="'@(_StrideVisualCRuntime2019NotInstalled)' != ''" Text="@(_StrideVisualCRuntime2019NotInstalled->'%(Identity) is not installed. Please download from %(DownloadUrl)', '%0a')"/>
|
||||
<ItemGroup Condition="'$(IsWindowsARM64)' == 'true'">
|
||||
<_StrideVisualCRuntime Include="Visual C++ Redistributable (ARM64)">
|
||||
<Version>$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\VC\Servicing\14.0\Runtime_arm64', 'Version', null, RegistryView.Registry64))</Version>
|
||||
<ExpectedVersion>14.42.34433</ExpectedVersion>
|
||||
<DownloadUrl>https://aka.ms/vs/17/release/vc_redist.arm64.exe</DownloadUrl>
|
||||
</_StrideVisualCRuntime>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<_StrideVisualCRuntimeNotInstalled Include="@(_StrideVisualCRuntime)" Condition="'%(_StrideVisualCRuntime.Version)' == '' Or $([System.Version]::Parse('%(Version)').CompareTo($([System.Version]::Parse('%(_StrideVisualCRuntime.ExpectedVersion)')))) < 0" />
|
||||
</ItemGroup>
|
||||
|
||||
<Error Condition="'@(_StrideVisualCRuntimeNotInstalled)' != ''" Text="@(_StrideVisualCRuntimeNotInstalled->'%(Identity) is not installed. Please download from %(DownloadUrl)', '%0a')"/>
|
||||
</Target>
|
||||
<!--
|
||||
*****************************************************************************************************************************
|
||||
|
||||
@@ -1,36 +1,31 @@
|
||||
<Project InitialTargets="_StrideCheckVisualCRuntime2019" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<!-- Check if Visual C++ Runtime 2019 is properly installed -->
|
||||
<Target Name="_StrideCheckVisualCRuntime2019" Condition="'$(MSBuildRuntimeType)' == 'Full'">
|
||||
<Project InitialTargets="_StrideCheckVisualCRuntime" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<!-- Check the Visual C++ Runtime needed by Stride's native libraries is installed -->
|
||||
<Target Name="_StrideCheckVisualCRuntime" Condition="'$(MSBuildRuntimeType)' == 'Full'">
|
||||
<PropertyGroup>
|
||||
<IsWindowsARM64 Condition="$([MSBuild]::IsOsPlatform('Windows')) And $([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture) == ARM64">true</IsWindowsARM64>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition="'$(IsWindowsARM64)' == 'false'">
|
||||
<_StrideVisualCRuntime2019 Include="Visual C++ Redistributable for Visual Studio 2019 x86">
|
||||
<Version>$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\VC\Servicing\14.0\RuntimeMinimum', 'Version', null, RegistryView.Registry32))</Version>
|
||||
<ExpectedVersion>14.22.27821</ExpectedVersion>
|
||||
<DownloadUrl>https://download.visualstudio.microsoft.com/download/pr/0c1cfec3-e028-4996-8bb7-0c751ba41e32/1abed1573f36075bfdfc538a2af00d37/vc_redist.x86.exe</DownloadUrl>
|
||||
</_StrideVisualCRuntime2019>
|
||||
<_StrideVisualCRuntime2019 Include="Visual C++ Redistributable for Visual Studio 2019 x64">
|
||||
<ItemGroup Condition="'$(IsWindowsARM64)' != 'true'">
|
||||
<_StrideVisualCRuntime Include="Visual C++ Redistributable (x64)">
|
||||
<Version>$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\VC\Servicing\14.0\RuntimeMinimum', 'Version', null, RegistryView.Registry64))</Version>
|
||||
<ExpectedVersion>14.22.27821</ExpectedVersion>
|
||||
<DownloadUrl>https://download.visualstudio.microsoft.com/download/pr/cc0046d4-e7b4-45a1-bd46-b1c079191224/9c4042a4c2e6d1f661f4c58cf4d129e9/vc_redist.x64.exe</DownloadUrl>
|
||||
</_StrideVisualCRuntime2019>
|
||||
<DownloadUrl>https://aka.ms/vs/17/release/vc_redist.x64.exe</DownloadUrl>
|
||||
</_StrideVisualCRuntime>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(IsWindowsARM64)' == 'true'">
|
||||
<_StrideVisualCRuntime2019 Include="Visual C++ Redistributable for Visual Studio 2019 ARM64">
|
||||
<_StrideVisualCRuntime Include="Visual C++ Redistributable (ARM64)">
|
||||
<Version>$([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DevDiv\VC\Servicing\14.0\Runtime_arm64', 'Version', null, RegistryView.Registry64))</Version>
|
||||
<ExpectedVersion>14.42.34433</ExpectedVersion>
|
||||
<DownloadUrl>https://download.visualstudio.microsoft.com/download/pr/285b28c7-3cf9-47fb-9be8-01cf5323a8df/8A81A52B7FF6B194CB88E1BB48D597B6588D2B840552909359F286FB1699235C/VC_redist.arm64.exe</DownloadUrl>
|
||||
</_StrideVisualCRuntime2019>
|
||||
<DownloadUrl>https://aka.ms/vs/17/release/vc_redist.arm64.exe</DownloadUrl>
|
||||
</_StrideVisualCRuntime>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<_StrideVisualCRuntime2019NotInstalled Include="@(_StrideVisualCRuntime2019)" Condition="'%(_StrideVisualCRuntime2019.Version)' == '' Or $([System.Version]::Parse('%(Version)').CompareTo($([System.Version]::Parse('%(_StrideVisualCRuntime2019.ExpectedVersion)')))) < 0" />
|
||||
<_StrideVisualCRuntimeNotInstalled Include="@(_StrideVisualCRuntime)" Condition="'%(_StrideVisualCRuntime.Version)' == '' Or $([System.Version]::Parse('%(Version)').CompareTo($([System.Version]::Parse('%(_StrideVisualCRuntime.ExpectedVersion)')))) < 0" />
|
||||
</ItemGroup>
|
||||
|
||||
<Error Condition="'@(_StrideVisualCRuntime2019NotInstalled)' != ''" Text="@(_StrideVisualCRuntime2019NotInstalled->'%(Identity) is not installed. Please download from %(DownloadUrl)', '%0a')"/>
|
||||
<Error Condition="'@(_StrideVisualCRuntimeNotInstalled)' != ''" Text="@(_StrideVisualCRuntimeNotInstalled->'%(Identity) is not installed. Please download from %(DownloadUrl)', '%0a')"/>
|
||||
</Target>
|
||||
|
||||
<!--
|
||||
|
||||
@@ -823,94 +823,6 @@ extern "C" {
|
||||
STDMETHOD(SetSourceSampleRate) (THIS_ UINT32 NewSourceSampleRate) PURE;
|
||||
};
|
||||
|
||||
struct IXAudio2SourceVoice1 : IXAudio2Voice
|
||||
{
|
||||
// NAME: IXAudio2SourceVoice::Start
|
||||
// DESCRIPTION: Makes this voice start consuming and processing audio.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// Flags - Flags controlling how the voice should be started.
|
||||
// OperationSet - Used to identify this call as part of a deferred batch.
|
||||
//
|
||||
STDMETHOD(Start) (THIS_ UINT32 Flags X2DEFAULT(0), UINT32 OperationSet X2DEFAULT(XAUDIO2_COMMIT_NOW)) PURE;
|
||||
|
||||
// NAME: IXAudio2SourceVoice::Stop
|
||||
// DESCRIPTION: Makes this voice stop consuming audio.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// Flags - Flags controlling how the voice should be stopped.
|
||||
// OperationSet - Used to identify this call as part of a deferred batch.
|
||||
//
|
||||
STDMETHOD(Stop) (THIS_ UINT32 Flags X2DEFAULT(0), UINT32 OperationSet X2DEFAULT(XAUDIO2_COMMIT_NOW)) PURE;
|
||||
|
||||
// NAME: IXAudio2SourceVoice::SubmitSourceBuffer
|
||||
// DESCRIPTION: Adds a new audio buffer to this voice's input queue.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// pBuffer - Pointer to the buffer structure to be queued.
|
||||
// pBufferWMA - Additional structure used only when submitting XWMA data.
|
||||
//
|
||||
STDMETHOD(SubmitSourceBuffer) (THIS_ const XAUDIO2_BUFFER* pBuffer, const XAUDIO2_BUFFER_WMA* pBufferWMA X2DEFAULT(NULL)) PURE;
|
||||
|
||||
// NAME: IXAudio2SourceVoice::FlushSourceBuffers
|
||||
// DESCRIPTION: Removes all pending audio buffers from this voice's queue.
|
||||
//
|
||||
STDMETHOD(FlushSourceBuffers) (THIS) PURE;
|
||||
|
||||
// NAME: IXAudio2SourceVoice::Discontinuity
|
||||
// DESCRIPTION: Notifies the voice of an intentional break in the stream of
|
||||
// audio buffers (e.g. the end of a sound), to prevent XAudio2
|
||||
// from interpreting an empty buffer queue as a glitch.
|
||||
//
|
||||
STDMETHOD(Discontinuity) (THIS) PURE;
|
||||
|
||||
// NAME: IXAudio2SourceVoice::ExitLoop
|
||||
// DESCRIPTION: Breaks out of the current loop when its end is reached.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// OperationSet - Used to identify this call as part of a deferred batch.
|
||||
//
|
||||
STDMETHOD(ExitLoop) (THIS_ UINT32 OperationSet X2DEFAULT(XAUDIO2_COMMIT_NOW)) PURE;
|
||||
|
||||
// NAME: IXAudio2SourceVoice::GetState
|
||||
// DESCRIPTION: Returns the number of buffers currently queued on this voice,
|
||||
// the pContext value associated with the currently processing
|
||||
// buffer (if any), and other voice state information.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// pVoiceState - Returns the state information.
|
||||
//
|
||||
STDMETHOD_(void, GetState) (THIS_ XAUDIO2_VOICE_STATE* pVoiceState) PURE;
|
||||
|
||||
// NAME: IXAudio2SourceVoice::SetFrequencyRatio
|
||||
// DESCRIPTION: Sets this voice's frequency adjustment, i.e. its pitch.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// Ratio - Frequency change, expressed as source frequency / target frequency.
|
||||
// OperationSet - Used to identify this call as part of a deferred batch.
|
||||
//
|
||||
STDMETHOD(SetFrequencyRatio) (THIS_ float Ratio,
|
||||
UINT32 OperationSet X2DEFAULT(XAUDIO2_COMMIT_NOW)) PURE;
|
||||
|
||||
// NAME: IXAudio2SourceVoice::GetFrequencyRatio
|
||||
// DESCRIPTION: Returns this voice's current frequency adjustment ratio.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// pRatio - Returns the frequency adjustment.
|
||||
//
|
||||
STDMETHOD_(void, GetFrequencyRatio) (THIS_ float* pRatio) PURE;
|
||||
|
||||
// NAME: IXAudio2SourceVoice::SetSourceSampleRate
|
||||
// DESCRIPTION: Reconfigures this voice to treat its source data as being
|
||||
// at a different sample rate than the original one specified
|
||||
// in CreateSourceVoice's pSourceFormat argument.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// UINT32 - The intended sample rate of further submitted source data.
|
||||
//
|
||||
STDMETHOD(SetSourceSampleRate) (THIS_ UINT32 NewSourceSampleRate) PURE;
|
||||
};
|
||||
|
||||
struct IXAudio2SubmixVoice : IXAudio2SourceVoice
|
||||
{
|
||||
};
|
||||
@@ -1167,155 +1079,10 @@ extern "C" {
|
||||
_Reserved_ void* pReserved X2DEFAULT(NULL)) PURE;
|
||||
};
|
||||
|
||||
struct IXAudio2_7 : IUnknown
|
||||
{
|
||||
|
||||
// NAME: IXAudio2::GetDeviceCount
|
||||
// DESCRIPTION: Returns the number of audio output devices available.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// pCount - Returns the device count.
|
||||
//
|
||||
STDMETHOD(GetDeviceCount) (THIS_ UINT32* pCount) PURE;
|
||||
|
||||
// NAME: IXAudio2::GetDeviceDetails
|
||||
// DESCRIPTION: Returns information about the device with the given index.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// Index - Index of the device to be queried.
|
||||
// pDeviceDetails - Returns the device details.
|
||||
//
|
||||
STDMETHOD(GetDeviceDetails) (THIS_ UINT32 Index, void* pDeviceDetails) PURE;
|
||||
|
||||
// NAME: IXAudio2::Initialize
|
||||
// DESCRIPTION: Sets global XAudio2 parameters and prepares it for use.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// Flags - Flags specifying the XAudio2 object's behavior. Currently unused.
|
||||
// XAudio2Processor - An XAUDIO2_PROCESSOR enumeration value that specifies
|
||||
// the hardware thread (Xbox) or processor (Windows) that XAudio2 will use.
|
||||
// The enumeration values are platform-specific; platform-independent code
|
||||
// can use XAUDIO2_DEFAULT_PROCESSOR to use the default on each platform.
|
||||
//
|
||||
STDMETHOD(Initialize) (THIS_ UINT32 Flags X2DEFAULT(0), UINT32 XAudio2Processor = 0x00000001) PURE;
|
||||
|
||||
// NAME: IXAudio2::RegisterForCallbacks
|
||||
// DESCRIPTION: Adds a new client to receive XAudio2's engine callbacks.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// pCallback - Callback interface to be called during each processing pass.
|
||||
//
|
||||
STDMETHOD(RegisterForCallbacks) (_In_ IXAudio2EngineCallback* pCallback) PURE;
|
||||
|
||||
// NAME: IXAudio2::UnregisterForCallbacks
|
||||
// DESCRIPTION: Removes an existing receiver of XAudio2 engine callbacks.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// pCallback - Previously registered callback interface to be removed.
|
||||
//
|
||||
STDMETHOD_(void, UnregisterForCallbacks) (_In_ IXAudio2EngineCallback* pCallback) PURE;
|
||||
|
||||
// NAME: IXAudio2::CreateSourceVoice
|
||||
// DESCRIPTION: Creates and configures a source voice.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// ppSourceVoice - Returns the new object's IXAudio2SourceVoice interface.
|
||||
// pSourceFormat - Format of the audio that will be fed to the voice.
|
||||
// Flags - XAUDIO2_VOICE flags specifying the source voice's behavior.
|
||||
// MaxFrequencyRatio - Maximum SetFrequencyRatio argument to be allowed.
|
||||
// pCallback - Optional pointer to a client-provided callback interface.
|
||||
// pSendList - Optional list of voices this voice should send audio to.
|
||||
// pEffectChain - Optional list of effects to apply to the audio data.
|
||||
//
|
||||
STDMETHOD(CreateSourceVoice) (THIS_ _Outptr_ IXAudio2SourceVoice** ppSourceVoice,
|
||||
_In_ const WAVEFORMATEX* pSourceFormat,
|
||||
UINT32 Flags X2DEFAULT(0),
|
||||
float MaxFrequencyRatio X2DEFAULT(XAUDIO2_DEFAULT_FREQ_RATIO),
|
||||
_In_opt_ IXAudio2VoiceCallback* pCallback X2DEFAULT(NULL),
|
||||
_In_opt_ const XAUDIO2_VOICE_SENDS* pSendList X2DEFAULT(NULL),
|
||||
_In_opt_ const XAUDIO2_EFFECT_CHAIN* pEffectChain X2DEFAULT(NULL)) PURE;
|
||||
|
||||
// NAME: IXAudio2::CreateSubmixVoice
|
||||
// DESCRIPTION: Creates and configures a submix voice.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// ppSubmixVoice - Returns the new object's IXAudio2SubmixVoice interface.
|
||||
// InputChannels - Number of channels in this voice's input audio data.
|
||||
// InputSampleRate - Sample rate of this voice's input audio data.
|
||||
// Flags - XAUDIO2_VOICE flags specifying the submix voice's behavior.
|
||||
// ProcessingStage - Arbitrary number that determines the processing order.
|
||||
// pSendList - Optional list of voices this voice should send audio to.
|
||||
// pEffectChain - Optional list of effects to apply to the audio data.
|
||||
//
|
||||
STDMETHOD(CreateSubmixVoice) (THIS_ _Outptr_ IXAudio2Voice** ppSubmixVoice,
|
||||
UINT32 InputChannels, UINT32 InputSampleRate,
|
||||
UINT32 Flags X2DEFAULT(0), UINT32 ProcessingStage X2DEFAULT(0),
|
||||
_In_opt_ const XAUDIO2_VOICE_SENDS* pSendList X2DEFAULT(NULL),
|
||||
_In_opt_ const XAUDIO2_EFFECT_CHAIN* pEffectChain X2DEFAULT(NULL)) PURE;
|
||||
|
||||
|
||||
// NAME: IXAudio2::CreateMasteringVoice
|
||||
// DESCRIPTION: Creates and configures a mastering voice.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// ppMasteringVoice - Returns the new object's IXAudio2MasteringVoice interface.
|
||||
// InputChannels - Number of channels in this voice's input audio data.
|
||||
// InputSampleRate - Sample rate of this voice's input audio data.
|
||||
// Flags - XAUDIO2_VOICE flags specifying the mastering voice's behavior.
|
||||
// DeviceIndex - Identifier of the device to receive the output audio.
|
||||
// pEffectChain - Optional list of effects to apply to the audio data.
|
||||
//
|
||||
STDMETHOD(CreateMasteringVoice) (THIS_ IXAudio2MasteringVoice** ppMasteringVoice,
|
||||
UINT32 InputChannels X2DEFAULT(XAUDIO2_DEFAULT_CHANNELS),
|
||||
UINT32 InputSampleRate X2DEFAULT(XAUDIO2_DEFAULT_SAMPLERATE),
|
||||
UINT32 Flags X2DEFAULT(0), UINT32 DeviceIndex X2DEFAULT(0),
|
||||
const XAUDIO2_EFFECT_CHAIN* pEffectChain X2DEFAULT(NULL)) PURE;
|
||||
|
||||
// NAME: IXAudio2::StartEngine
|
||||
// DESCRIPTION: Creates and starts the audio processing thread.
|
||||
//
|
||||
STDMETHOD(StartEngine) (THIS) PURE;
|
||||
|
||||
// NAME: IXAudio2::StopEngine
|
||||
// DESCRIPTION: Stops and destroys the audio processing thread.
|
||||
//
|
||||
STDMETHOD_(void, StopEngine) (THIS) PURE;
|
||||
|
||||
// NAME: IXAudio2::CommitChanges
|
||||
// DESCRIPTION: Atomically applies a set of operations previously tagged
|
||||
// with a given identifier.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// OperationSet - Identifier of the set of operations to be applied.
|
||||
//
|
||||
STDMETHOD(CommitChanges) (THIS_ UINT32 OperationSet) PURE;
|
||||
|
||||
// NAME: IXAudio2::GetPerformanceData
|
||||
// DESCRIPTION: Returns current resource usage details: memory, CPU, etc.
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// pPerfData - Returns the performance data structure.
|
||||
//
|
||||
STDMETHOD_(void, GetPerformanceData) (THIS_ _Out_ XAUDIO2_PERFORMANCE_DATA* pPerfData) PURE;
|
||||
|
||||
// NAME: IXAudio2::SetDebugConfiguration
|
||||
// DESCRIPTION: Configures XAudio2's debug output (in debug builds only).
|
||||
//
|
||||
// ARGUMENTS:
|
||||
// pDebugConfiguration - Structure describing the debug output behavior.
|
||||
// pReserved - Optional parameter; must be NULL.
|
||||
//
|
||||
STDMETHOD_(void, SetDebugConfiguration) (THIS_ _In_opt_ const XAUDIO2_DEBUG_CONFIGURATION* pDebugConfiguration,
|
||||
_Reserved_ void* pReserved X2DEFAULT(NULL)) PURE;
|
||||
};
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
#define AUDIO_CHANNELS 2
|
||||
|
||||
//Windows 7 has no XAudio by default , it is taken from DX sdk and its loaded using COM...
|
||||
bool xnAudioWindows7Hacks = false;
|
||||
|
||||
void* xnHrtfApoLib;
|
||||
|
||||
typedef IID *LPIID;
|
||||
@@ -1342,14 +1109,12 @@ extern "C" {
|
||||
CoInitializeEx(NULL, 0x0);
|
||||
|
||||
//On Windows, not desktop platforms we are using XAudio2.lib
|
||||
//On Windows Desktop it's more complicated specially because Windows 7, we try from 2.9 to 2.7 (COM loaded)
|
||||
//On Windows Desktop, load the in-box XAudio2 (2.9, win10+)
|
||||
|
||||
#ifdef WINDOWS_DESKTOP
|
||||
xnXAudioLib = LoadDynamicLibrary("XAudio2_9"); //win10+
|
||||
xnHrtfApoLib = LoadDynamicLibrary("HrtfApo"); //win10+
|
||||
|
||||
if (!xnXAudioLib) xnXAudioLib = LoadDynamicLibrary("XAudio2_8"); //win8+
|
||||
|
||||
|
||||
if(xnXAudioLib)
|
||||
{
|
||||
XAudio2CreateFunc = (XAudio2CreatePtr)GetSymbolAddress(xnXAudioLib, "XAudio2Create");
|
||||
@@ -1361,15 +1126,7 @@ extern "C" {
|
||||
IIDFromString(L"{15B3CD66-E9DE-4464-B6E6-2BC3CF63D455}", &xnHrtfParamsIID);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
xnAudioWindows7Hacks = true;
|
||||
|
||||
//also load X3daudio
|
||||
xnXAudioLib = LoadDynamicLibrary("X3DAudio1_7");
|
||||
if (!xnXAudioLib) return false;
|
||||
}
|
||||
|
||||
if (!xnXAudioLib) return false;
|
||||
|
||||
X3DAudioInitializeFunc = (X3DAudioInitializePtr)GetSymbolAddress(xnXAudioLib, "X3DAudioInitialize");
|
||||
@@ -1384,7 +1141,6 @@ extern "C" {
|
||||
struct xnAudioDevice
|
||||
{
|
||||
IXAudio2* x_audio2_;
|
||||
IXAudio2_7* x_audio2_7_;
|
||||
X3DAUDIO_HANDLE x3_audio_;
|
||||
IXAudio2MasteringVoice* mastering_voice_;
|
||||
bool hrtf_;
|
||||
@@ -1419,47 +1175,6 @@ extern "C" {
|
||||
|
||||
HRESULT result;
|
||||
|
||||
#ifdef WINDOWS_DESKTOP
|
||||
if(xnAudioWindows7Hacks)
|
||||
{
|
||||
#define CLSCTX_INPROC_SERVER 0x1
|
||||
IID cid, iid;
|
||||
IIDFromString(L"{5a508685-a254-4fba-9b82-9a24b00306af}", &cid);
|
||||
IIDFromString(L"{8bcf1f58-9fe7-4583-8ac6-e2adc465c8bb}", &iid);
|
||||
result = CoCreateInstance(cid, NULL, CLSCTX_INPROC_SERVER, iid, (void**)&res->x_audio2_7_);
|
||||
if (FAILED(result))
|
||||
{
|
||||
printf("CoCreateInstance failed to create XAudio2 instance.\n");
|
||||
delete res;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
result = res->x_audio2_7_->Initialize(0, 0x00000001);
|
||||
if (FAILED(result))
|
||||
{
|
||||
printf("Failed to init XAudio2 instance.\n");
|
||||
delete res;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
result = res->x_audio2_7_->CreateMasteringVoice(&res->mastering_voice_, AUDIO_CHANNELS);
|
||||
if (FAILED(result))
|
||||
{
|
||||
printf("Failed to create XAudio2 MasteringVoice.\n");
|
||||
delete res;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
result = res->x_audio2_7_->StartEngine();
|
||||
if (FAILED(result))
|
||||
{
|
||||
printf("Failed to create start XAudio2 engine.\n");
|
||||
delete res;
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
res->hrtf_ = xnHrtfApoLib && (flags & xnAudioDeviceFlagsHrtf);
|
||||
|
||||
@@ -1501,14 +1216,7 @@ extern "C" {
|
||||
|
||||
DLL_EXPORT_API void xnAudioDestroy(xnAudioDevice* device)
|
||||
{
|
||||
if(xnAudioWindows7Hacks)
|
||||
{
|
||||
device->x_audio2_7_->StopEngine();
|
||||
}
|
||||
else
|
||||
{
|
||||
device->x_audio2_->StopEngine();
|
||||
}
|
||||
device->x_audio2_->StopEngine();
|
||||
|
||||
device->mastering_voice_->DestroyVoice();
|
||||
|
||||
@@ -1592,15 +1300,7 @@ extern "C" {
|
||||
|
||||
void GetState(XAUDIO2_VOICE_STATE* state)
|
||||
{
|
||||
if (xnAudioWindows7Hacks)
|
||||
{
|
||||
auto win7Voice = reinterpret_cast<IXAudio2SourceVoice1*>(source_voice_);
|
||||
win7Voice->GetState(state);
|
||||
}
|
||||
else
|
||||
{
|
||||
source_voice_->GetState(state, 0);
|
||||
}
|
||||
source_voice_->GetState(state, 0);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1656,16 +1356,6 @@ extern "C" {
|
||||
pcmWaveFormat.wBitsPerSample = 16;
|
||||
pcmWaveFormat.nBlockAlign = pcmWaveFormat.nChannels * pcmWaveFormat.wBitsPerSample / 8;
|
||||
|
||||
if(xnAudioWindows7Hacks)
|
||||
{
|
||||
HRESULT result = listener->device_->x_audio2_7_->CreateSourceVoice(&res->source_voice_, &pcmWaveFormat, 0, XAUDIO2_MAX_FREQ_RATIO, res);
|
||||
if (FAILED(result))
|
||||
{
|
||||
delete res;
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
HRESULT result = listener->device_->x_audio2_->CreateSourceVoice(&res->source_voice_, &pcmWaveFormat, 0, XAUDIO2_MAX_FREQ_RATIO, res);
|
||||
if (FAILED(result))
|
||||
@@ -2112,7 +1802,7 @@ extern "C" {
|
||||
source->doppler_pitch_ = source->dsp_settings_->DopplerFactor;
|
||||
source->source_voice_->SetFrequencyRatio(source->dsp_settings_->DopplerFactor * source->pitch_);
|
||||
XAUDIO2_FILTER_PARAMETERS filter_parameters = { LowPassFilter, 2.0f * (float)sin(X3DAUDIO_PI / 6.0f * source->dsp_settings_->LPFDirectCoefficient), 1.0f };
|
||||
if (!xnAudioWindows7Hacks) source->source_voice_->SetFilterParameters(&filter_parameters);
|
||||
source->source_voice_->SetFilterParameters(&filter_parameters);
|
||||
|
||||
source->apply3DLock_.Unlock();
|
||||
}
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
*.exe
|
||||
*-cache/
|
||||
@@ -1,225 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<DOCUMENT Type="Advanced Installer" CreateVersion="11.6.3" version="22.0" Modules="professional" RootPath="." Language="en_GB" Id="{5C6599B3-C952-4F7D-8B58-CE119C7BC8E9}">
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiPropsComponent">
|
||||
<ROW Property="AI_BITMAP_DISPLAY_MODE" Value="0"/>
|
||||
<ROW Property="AI_FINDEXE_TITLE" Value="Select the installation package for [|ProductName]" ValueLocId="AI.Property.FindExeTitle"/>
|
||||
<ROW Property="ALLUSERS" Value="1" MultiBuildValue="DefaultBuild:"/>
|
||||
<ROW Property="ARPCOMMENTS" Value="This installer database contains the logic and data required to install [|ProductName]." ValueLocId="*"/>
|
||||
<ROW Property="ARPCONTACT" Value="[email protected]"/>
|
||||
<ROW Property="ARPNOREPAIR" MultiBuildValue="DefaultBuild:1"/>
|
||||
<ROW Property="ARPURLINFOABOUT" Value="http://stride3d.net"/>
|
||||
<ROW Property="Manufacturer" Value="Stride"/>
|
||||
<ROW Property="ProductCode" Value="2057:{12696D67-B2C7-4A9A-A117-0807F79D37E0} " Type="16"/>
|
||||
<ROW Property="ProductLanguage" Value="2057"/>
|
||||
<ROW Property="ProductName" Value="Stride Launcher Prerequisites"/>
|
||||
<ROW Property="ProductVersion" Value="1.0.0" Options="32"/>
|
||||
<ROW Property="SecureCustomProperties" Value="OLDPRODUCTS;AI_NEWERPRODUCTFOUND;AI_SETUPEXEPATH;SETUPEXEDIR"/>
|
||||
<ROW Property="UpgradeCode" Value="{78A7BD50-E735-4C31-AF8B-E81F2A65B8EE}"/>
|
||||
<ROW Property="WindowsType9X" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/>
|
||||
<ROW Property="WindowsType9XDisplay" MultiBuildValue="DefaultBuild:Windows 9x/ME" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT" MultiBuildValue="DefaultBuild:Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT40" MultiBuildValue="DefaultBuild:Windows NT 4.0" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT40Display" MultiBuildValue="DefaultBuild:Windows NT 4.0" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT50" MultiBuildValue="DefaultBuild:Windows 2000" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT50Display" MultiBuildValue="DefaultBuild:Windows 2000" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT5X" MultiBuildValue="DefaultBuild:Windows XP/2003" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT5XDisplay" MultiBuildValue="DefaultBuild:Windows XP/2003" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT60" MultiBuildValue="DefaultBuild:Windows Vista/Server 2008" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT60Display" MultiBuildValue="DefaultBuild:Windows Vista/Server 2008" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT64" MultiBuildValue="DefaultBuild:Windows 7 RTM x64" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT64Display" MultiBuildValue="DefaultBuild:Windows 7 RTM x64" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNTDisplay" MultiBuildValue="DefaultBuild:32-bit Windows versions" ValueLocId="-"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiDirsComponent">
|
||||
<ROW Directory="APPDIR" Directory_Parent="TARGETDIR" DefaultDir="APPDIR:." IsPseudoRoot="1"/>
|
||||
<ROW Directory="TARGETDIR" DefaultDir="SourceDir"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiCompsComponent">
|
||||
<ROW Component="AI_ExePath" ComponentId="{5FA56C9F-09C9-4882-9F42-17193BBE00B8}" Directory_="APPDIR" Attributes="4" KeyPath="AI_ExePath"/>
|
||||
<ROW Component="APPDIR" ComponentId="{0BD578A0-6898-47DF-8162-15BB0D0FE82A}" Directory_="APPDIR" Attributes="0"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiFeatsComponent">
|
||||
<ROW Feature="MainFeature" Title="MainFeature" Description="Description" Display="1" Level="1" Directory_="APPDIR" Attributes="0"/>
|
||||
<ATTRIBUTE name="CurrentFeature" value="MainFeature"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.BootstrapperUISequenceComponent">
|
||||
<ROW Action="AI_AppSearchEx" Condition="AI_BOOTSTRAPPER" Sequence="252"/>
|
||||
<ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Sequence="249"/>
|
||||
<ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Condition="AI_SETUPEXEPATH_ORIGINAL" Sequence="251"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
|
||||
<ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="." PackageFileName="launcher-prerequisites" Languages="en_GB" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" MsiCmdLine="/qn" ExtUI="true" UseLargeSchema="true" MsiPackageType="x64"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
|
||||
<ROW Path="<AI_DICTS>ui.ail"/>
|
||||
<ROW Path="<AI_DICTS>ui_en_GB.ail"/>
|
||||
<ROW Path="<AI_DICTS>ui_en.ail"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.DigCertStoreComponent">
|
||||
<ROW TimeStampUrl="http://timestamp.digicert.com" SignerDescription="[|ProductName]" DescriptionUrl="https://stride3d.net/" SignOptions="0" SignTool="5" UseSha256="1"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.FragmentComponent">
|
||||
<ROW Fragment="CommonUI.aip" Path="<AI_FRAGS>CommonUI.aip"/>
|
||||
<ROW Fragment="FolderDlg.aip" Path="<AI_THEMES>classic\fragments\FolderDlg.aip"/>
|
||||
<ROW Fragment="MaintenanceTypeDlg.aip" Path="<AI_THEMES>classic\fragments\MaintenanceTypeDlg.aip"/>
|
||||
<ROW Fragment="MaintenanceWelcomeDlg.aip" Path="<AI_THEMES>classic\fragments\MaintenanceWelcomeDlg.aip"/>
|
||||
<ROW Fragment="PreparePrereqDlg.aip" Path="<AI_THEMES>classic\fragments\PreparePrereqDlg.aip"/>
|
||||
<ROW Fragment="PrerequisitesDlg.aip" Path="<AI_THEMES>classic\fragments\PrerequisitesDlg.aip"/>
|
||||
<ROW Fragment="ProgressPrereqDlg.aip" Path="<AI_THEMES>classic\fragments\ProgressPrereqDlg.aip"/>
|
||||
<ROW Fragment="SequenceDialogs.aip" Path="<AI_THEMES>classic\fragments\SequenceDialogs.aip"/>
|
||||
<ROW Fragment="Sequences.aip" Path="<AI_FRAGS>Sequences.aip"/>
|
||||
<ROW Fragment="StaticUIStrings.aip" Path="<AI_FRAGS>StaticUIStrings.aip"/>
|
||||
<ROW Fragment="Themes.aip" Path="<AI_FRAGS>Themes.aip"/>
|
||||
<ROW Fragment="UI.aip" Path="<AI_THEMES>classic\fragments\UI.aip"/>
|
||||
<ROW Fragment="Validation.aip" Path="<AI_FRAGS>Validation.aip"/>
|
||||
<ROW Fragment="VerifyRemoveDlg.aip" Path="<AI_THEMES>classic\fragments\VerifyRemoveDlg.aip"/>
|
||||
<ROW Fragment="VerifyRepairDlg.aip" Path="<AI_THEMES>classic\fragments\VerifyRepairDlg.aip"/>
|
||||
<ROW Fragment="WelcomeDlg.aip" Path="<AI_THEMES>classic\fragments\WelcomeDlg.aip"/>
|
||||
<ROW Fragment="WelcomePrereqDlg.aip" Path="<AI_THEMES>classic\fragments\WelcomePrereqDlg.aip"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiActionTextComponent">
|
||||
<ROW Action="AI_DeleteLzma" Description="Deleting files extracted from archive" DescriptionLocId="ActionText.Description.AI_DeleteLzma" TemplateLocId="-"/>
|
||||
<ROW Action="AI_DeleteRLzma" Description="Deleting files extracted from archive" DescriptionLocId="ActionText.Description.AI_DeleteLzma" TemplateLocId="-"/>
|
||||
<ROW Action="AI_ExtractFiles" Description="Extracting files from archive" DescriptionLocId="ActionText.Description.AI_ExtractLzma" TemplateLocId="-"/>
|
||||
<ROW Action="AI_ExtractLzma" Description="Extracting files from archive" DescriptionLocId="ActionText.Description.AI_ExtractLzma" TemplateLocId="-"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiAppSearchComponent">
|
||||
<ROW Property="AI_SETUPEXEPATH" Signature_="AI_EXE_PATH_CU" Builds="DefaultBuild"/>
|
||||
<ROW Property="AI_SETUPEXEPATH" Signature_="AI_EXE_PATH_LM" Builds="DefaultBuild"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiBinaryComponent">
|
||||
<ROW Name="Prereq.dll" SourcePath="<AI_CUSTACTS>Prereq.dll"/>
|
||||
<ROW Name="aicustact.dll" SourcePath="<AI_CUSTACTS>aicustact.dll"/>
|
||||
<ROW Name="lzmaextractor.dll" SourcePath="<AI_CUSTACTS>lzmaextractor.dll"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiControlEventComponent">
|
||||
<ROW Dialog_="WelcomeDlg" Control_="Next" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="1"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_INSTALL" Ordering="201"/>
|
||||
<ROW Dialog_="FolderDlg" Control_="Back" Event="NewDialog" Argument="WelcomeDlg" Condition="AI_INSTALL" Ordering="1"/>
|
||||
<ROW Dialog_="MaintenanceWelcomeDlg" Control_="Next" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="99"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_MAINT" Ordering="198"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="CustomizeDlg" Condition="AI_MAINT" Ordering="202"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_INSTALL" Ordering="197"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="FolderDlg" Condition="AI_INSTALL" Ordering="201"/>
|
||||
<ROW Dialog_="CustomizeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_MAINT" Ordering="101"/>
|
||||
<ROW Dialog_="CustomizeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT" Ordering="1"/>
|
||||
<ROW Dialog_="MaintenanceTypeDlg" Control_="ChangeButton" Event="NewDialog" Argument="CustomizeDlg" Condition="AI_MAINT" Ordering="501"/>
|
||||
<ROW Dialog_="MaintenanceTypeDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceWelcomeDlg" Condition="AI_MAINT" Ordering="1"/>
|
||||
<ROW Dialog_="MaintenanceTypeDlg" Control_="RemoveButton" Event="NewDialog" Argument="VerifyRemoveDlg" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="601"/>
|
||||
<ROW Dialog_="VerifyRemoveDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="1"/>
|
||||
<ROW Dialog_="MaintenanceTypeDlg" Control_="RepairButton" Event="NewDialog" Argument="VerifyRepairDlg" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="601"/>
|
||||
<ROW Dialog_="VerifyRepairDlg" Control_="Back" Event="NewDialog" Argument="MaintenanceTypeDlg" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="1"/>
|
||||
<ROW Dialog_="VerifyRepairDlg" Control_="Repair" Event="EndDialog" Argument="Return" Condition="AI_MAINT AND InstallMode="Repair"" Ordering="399" Options="1"/>
|
||||
<ROW Dialog_="VerifyRemoveDlg" Control_="Remove" Event="EndDialog" Argument="Return" Condition="AI_MAINT AND InstallMode="Remove"" Ordering="299" Options="1"/>
|
||||
<ROW Dialog_="PatchWelcomeDlg" Control_="Next" Event="NewDialog" Argument="VerifyReadyDlg" Condition="AI_PATCH" Ordering="201"/>
|
||||
<ROW Dialog_="ResumeDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_RESUME" Ordering="299"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Install" Event="EndDialog" Argument="Return" Condition="AI_PATCH" Ordering="199"/>
|
||||
<ROW Dialog_="VerifyReadyDlg" Control_="Back" Event="NewDialog" Argument="PatchWelcomeDlg" Condition="AI_PATCH" Ordering="203"/>
|
||||
<ROW Dialog_="WelcomePrereqDlg" Control_="Next" Event="NewDialog" Argument="PrerequisitesDlg" Condition="AI_BOOTSTRAPPER" Ordering="1"/>
|
||||
<ROW Dialog_="PrerequisitesDlg" Control_="Next" Event="EndDialog" Argument="Return" Condition="AI_BOOTSTRAPPER" Ordering="1"/>
|
||||
<ROW Dialog_="PrerequisitesDlg" Control_="Back" Event="NewDialog" Argument="WelcomePrereqDlg" Condition="AI_BOOTSTRAPPER" Ordering="1"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiCreateFolderComponent">
|
||||
<ROW Directory_="APPDIR" Component_="APPDIR" ManualDelete="true"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiCustActComponent">
|
||||
<ROW Action="AI_AppSearchEx" Type="1" Source="Prereq.dll" Target="DoAppSearchEx"/>
|
||||
<ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH_ORIGINAL" Target="[AI_SETUPEXEPATH]"/>
|
||||
<ROW Action="AI_DATA_SETTER" Type="51" Source="CustomActionData" Target="[AI_SETUPEXEPATH]"/>
|
||||
<ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/>
|
||||
<ROW Action="AI_DeleteCadLzma" Type="51" Source="AI_DeleteLzma" Target="[AI_SETUPEXEPATH]"/>
|
||||
<ROW Action="AI_DeleteLzma" Type="1025" Source="lzmaextractor.dll" Target="DeleteLZMAFiles"/>
|
||||
<ROW Action="AI_DeleteRCadLzma" Type="51" Source="AI_DeleteRLzma" Target="[AI_SETUPEXEPATH]"/>
|
||||
<ROW Action="AI_DeleteRLzma" Type="1281" Source="lzmaextractor.dll" Target="DeleteLZMAFiles"/>
|
||||
<ROW Action="AI_DpiContentScale" Type="1" Source="aicustact.dll" Target="DpiContentScale"/>
|
||||
<ROW Action="AI_EnableDebugLog" Type="321" Source="aicustact.dll" Target="EnableDebugLog"/>
|
||||
<ROW Action="AI_ExtractCadLzma" Type="51" Source="AI_ExtractLzma" Target="[AI_SETUPEXEPATH]"/>
|
||||
<ROW Action="AI_ExtractFiles" Type="1" Source="Prereq.dll" Target="ExtractSourceFiles" AdditionalSeq="AI_DATA_SETTER"/>
|
||||
<ROW Action="AI_ExtractLzma" Type="1025" Source="lzmaextractor.dll" Target="ExtractLZMAFiles"/>
|
||||
<ROW Action="AI_FindExeLzma" Type="1" Source="lzmaextractor.dll" Target="FindEXE"/>
|
||||
<ROW Action="AI_InstallModeCheck" Type="1" Source="aicustact.dll" Target="UpdateInstallMode" WithoutSeq="true"/>
|
||||
<ROW Action="AI_PREPARE_UPGRADE" Type="65" Source="aicustact.dll" Target="PrepareUpgrade"/>
|
||||
<ROW Action="AI_PRESERVE_INSTALL_TYPE" Type="65" Source="aicustact.dll" Target="PreserveInstallType"/>
|
||||
<ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH" Target="[AI_SETUPEXEPATH_ORIGINAL]"/>
|
||||
<ROW Action="AI_RESTORE_LOCATION" Type="65" Source="aicustact.dll" Target="RestoreLocation"/>
|
||||
<ROW Action="AI_ResolveKnownFolders" Type="1" Source="aicustact.dll" Target="AI_ResolveKnownFolders"/>
|
||||
<ROW Action="AI_SHOW_LOG" Type="65" Source="aicustact.dll" Target="LaunchLogFile" WithoutSeq="true"/>
|
||||
<ROW Action="AI_STORE_LOCATION" Type="51" Source="ARPINSTALLLOCATION" Target="[APPDIR]"/>
|
||||
<ROW Action="SET_APPDIR" Type="307" Source="APPDIR" Target="[ProgramFilesFolder][Manufacturer]\[ProductName]" MultiBuildTarget="DefaultBuild:[AppDataFolder][ProductName]"/>
|
||||
<ROW Action="SET_SHORTCUTDIR" Type="307" Source="SHORTCUTDIR" Target="[ProgramMenuFolder][ProductName]"/>
|
||||
<ROW Action="SET_TARGETDIR_TO_APPDIR" Type="51" Source="TARGETDIR" Target="[APPDIR]"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiFeatCompsComponent">
|
||||
<ROW Feature_="MainFeature" Component_="AI_ExePath"/>
|
||||
<ROW Feature_="MainFeature" Component_="APPDIR"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
|
||||
<ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel <> 5)" Sequence="210"/>
|
||||
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/>
|
||||
<ROW Action="AI_STORE_LOCATION" Condition="(Not Installed) OR REINSTALL" Sequence="1501"/>
|
||||
<ROW Action="AI_PREPARE_UPGRADE" Condition="AI_UPGRADE="No" AND (Not Installed)" Sequence="1397"/>
|
||||
<ROW Action="AI_ResolveKnownFolders" Sequence="52"/>
|
||||
<ROW Action="AI_EnableDebugLog" Sequence="51"/>
|
||||
<ROW Action="AI_AppSearchEx" Sequence="102"/>
|
||||
<ROW Action="AI_ExtractFiles" Sequence="1399" Builds="DefaultBuild"/>
|
||||
<ROW Action="AI_DATA_SETTER" Sequence="1398"/>
|
||||
<ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Sequence="99" Builds="DefaultBuild"/>
|
||||
<ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Condition="AI_SETUPEXEPATH_ORIGINAL" Sequence="101" Builds="DefaultBuild"/>
|
||||
<ROW Action="AI_DeleteCadLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="199" Builds="DefaultBuild"/>
|
||||
<ROW Action="AI_DeleteRCadLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="198" Builds="DefaultBuild"/>
|
||||
<ROW Action="AI_ExtractCadLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="197" Builds="DefaultBuild"/>
|
||||
<ROW Action="AI_FindExeLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="196" Builds="DefaultBuild"/>
|
||||
<ROW Action="AI_ExtractLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="1549" Builds="DefaultBuild"/>
|
||||
<ROW Action="AI_DeleteRLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="1548" Builds="DefaultBuild"/>
|
||||
<ROW Action="AI_DeleteLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="6599" Builds="DefaultBuild"/>
|
||||
<ATTRIBUTE name="RegisterProduct" value="false"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
|
||||
<ROW Action="ExecuteAction" Sequence="1299" SeqType="0" MsiKey="ExecuteAction"/>
|
||||
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="749"/>
|
||||
<ROW Action="AI_ResolveKnownFolders" Sequence="53"/>
|
||||
<ROW Action="AI_DpiContentScale" Sequence="52"/>
|
||||
<ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Sequence="99"/>
|
||||
<ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Condition="AI_SETUPEXEPATH_ORIGINAL" Sequence="102"/>
|
||||
<ROW Action="AI_EnableDebugLog" Sequence="51"/>
|
||||
<ROW Action="AI_AppSearchEx" Sequence="101"/>
|
||||
<ROW Action="AI_PRESERVE_INSTALL_TYPE" Sequence="199"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiLaunchConditionsComponent">
|
||||
<ROW Condition="( Version9X OR ( NOT VersionNT64 ) OR ( VersionNT64 AND ((VersionNT64 <> 601) OR (ServicePackLevel <> 0) OR (MsiNTProductType <> 1)) ) )" Description="[ProductName] can not be installed on the following Windows versions: [WindowsTypeNT64Display]." DescriptionLocId="AI.LaunchCondition.NoSpecificNT64" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="( Version9X OR VersionNT64 )" Description="[ProductName] cannot be installed on [WindowsTypeNTDisplay]" DescriptionLocId="AI.LaunchCondition.NoNT" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="((VersionNT <> 501) AND (VersionNT <> 502))" Description="[ProductName] cannot be installed on [WindowsTypeNT5XDisplay]." DescriptionLocId="AI.LaunchCondition.NoNT5X" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="(VersionNT <> 400)" Description="[ProductName] cannot be installed on the following Windows versions: [WindowsTypeNT40Display]" DescriptionLocId="AI.LaunchCondition.NoNT40" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="(VersionNT <> 500)" Description="[ProductName] can not be installed on [WindowsTypeNT50Display]." DescriptionLocId="AI.LaunchCondition.NoNT50" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="(VersionNT <> 600)" Description="[ProductName] cannot be installed on [WindowsTypeNT60Display]." DescriptionLocId="AI.LaunchCondition.NoNT60" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="SETUPEXEDIR OR (REMOVE="ALL")" Description="This package can only be run from a bootstrapper." DescriptionLocId="AI.LaunchCondition.RequireBootstrapper" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="VersionNT" Description="[ProductName] can not be installed on [WindowsType9XDisplay]." DescriptionLocId="AI.LaunchCondition.No9X" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiRegLocatorComponent">
|
||||
<ROW Signature_="AI_EXE_PATH_CU" Root="1" Key="Software\Caphyon\Advanced Installer\LZMA\[ProductCode]\[ProductVersion]" Name="AI_ExePath" Type="2"/>
|
||||
<ROW Signature_="AI_EXE_PATH_LM" Root="2" Key="Software\Caphyon\Advanced Installer\LZMA\[ProductCode]\[ProductVersion]" Name="AI_ExePath" Type="2"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiRegsComponent">
|
||||
<ROW Registry="AI_ExePath" Root="-1" Key="Software\Caphyon\Advanced Installer\LZMA\[ProductCode]\[ProductVersion]" Name="AI_ExePath" Value="[AI_SETUPEXEPATH]" Component_="AI_ExePath"/>
|
||||
<ROW Registry="AdvancedInstaller" Root="-1" Key="Software\Caphyon\Advanced Installer" Name="\"/>
|
||||
<ROW Registry="Caphyon" Root="-1" Key="Software\Caphyon" Name="\"/>
|
||||
<ROW Registry="LZMA" Root="-1" Key="Software\Caphyon\Advanced Installer\LZMA" Name="\"/>
|
||||
<ROW Registry="ProductCode" Root="-1" Key="Software\Caphyon\Advanced Installer\LZMA\[ProductCode]" Name="\"/>
|
||||
<ROW Registry="ProductVersion" Root="-1" Key="Software\Caphyon\Advanced Installer\LZMA\[ProductCode]\[ProductVersion]" Name="\"/>
|
||||
<ROW Registry="Software" Root="-1" Key="Software" Name="\"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiThemeComponent">
|
||||
<ATTRIBUTE name="UsedTheme" value="classic"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiUpgradeComponent">
|
||||
<ROW UpgradeCode="[|UpgradeCode]" VersionMin="0.0.1" VersionMax="[|ProductVersion]" Attributes="257" ActionProperty="OLDPRODUCTS"/>
|
||||
<ROW UpgradeCode="[|UpgradeCode]" VersionMin="[|ProductVersion]" Attributes="2" ActionProperty="AI_NEWERPRODUCTFOUND"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.PreReqComponent">
|
||||
<ROW PrereqKey="A6D7F21EAEB4C4A901F0979CF110936" DisplayName=".NET Framework 4.7.2" SetupFileUrl="https://download.microsoft.com/download/6/E/4/6E48E8AB-DC00-419E-9704-06DD46E5F81D/NDP472-KB4054530-x86-x64-AllOS-ENU.exe" Location="1" ExactSize="83943272" WinNTVersions="Windows 7 RTM x86, Windows 10 version 1507 x86, Windows 10 version 1511 x86, Windows 10 version 1803 x86, Windows 10 version 1809 x86" WinNT64Versions="Windows 7 RTM x64, Windows Server 2008 R2 RTM x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64, Windows 10 version 1803 x64, Windows 10 version 1809 x64" Operator="1" ComLine="[AI_PREREQ_UILEVEL_SWITCH]" NoUiComLine="/q /norestart" Options="xkq" MD5="87450cfa175585b23a76bbd7052ee66b" TargetName=".NET Framework 4.7.2"/>
|
||||
<ATTRIBUTE name="PrereqsOrder" value="A6D7F21EAEB4C4A901F0979CF110936"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.PreReqSearchComponent">
|
||||
<ROW SearchKey="A6D7F21EAEB4C4A901F0979CF110936Rele" Prereq="A6D7F21EAEB4C4A901F0979CF110936" SearchType="9" SearchString="HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Release" RefContent="G461813" Order="1" Property="PreReqSearch_A6D7F21EAEB4C4A901F097"/>
|
||||
</COMPONENT>
|
||||
</DOCUMENT>
|
||||
@@ -43,8 +43,8 @@
|
||||
<ROW Property="WindowsTypeNT5XDisplay" MultiBuildValue="DefaultBuild:Windows XP/2003" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT60" MultiBuildValue="DefaultBuild:Windows Vista/Server 2008" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT60Display" MultiBuildValue="DefaultBuild:Windows Vista/Server 2008" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT64" MultiBuildValue="DefaultBuild:Windows 7 RTM x64" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT64Display" MultiBuildValue="DefaultBuild:Windows 7 RTM x64" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT64" MultiBuildValue="DefaultBuild:Windows 7 x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 8.1 x64, Windows Server 2012 R2 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT64Display" MultiBuildValue="DefaultBuild:Windows 7 x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 8.1 x64, Windows Server 2012 R2 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNTDisplay" MultiBuildValue="DefaultBuild:32-bit Windows versions" ValueLocId="-"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiDirsComponent">
|
||||
@@ -72,7 +72,6 @@
|
||||
<ROW Component="Stride.exe" ComponentId="{048BE390-6BC5-4847-A9E8-537982535C15}" Directory_="APPDIR" Attributes="0" KeyPath="Stride.exe"/>
|
||||
<ROW Component="Targets" ComponentId="{FD7FA82A-7C57-4C7D-BF3A-6A77FE7B7640}" Directory_="Targets_Dir" Attributes="0"/>
|
||||
<ROW Component="UserInstall" ComponentId="{C2DAD2F4-F15C-4BD0-B7AC-505DD4A0A46B}" Directory_="APPDIR" Attributes="4" Condition="AdminUser <> 1" KeyPath="Temp"/>
|
||||
<ROW Component="launcherprerequisites.exe" ComponentId="{148823E1-3AEC-46C3-A8B7-F9BA6EE2BAB7}" Directory_="Prerequisites_Dir" Attributes="0" KeyPath="launcherprerequisites.exe"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiFeatsComponent">
|
||||
<ROW Feature="Stride" Title="Stride" Description="Description" Display="1" Level="1" Directory_="APPDIR" Attributes="16"/>
|
||||
@@ -80,7 +79,6 @@
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiFilesComponent">
|
||||
<ROW File="Stride.exe" Component_="Stride.exe" FileName="STRIDE~1.EXE|Stride.Launcher.exe" Attributes="0" SourcePath="..\Stride.Launcher\bin\Release\publish\Stride.Launcher.exe" SelfReg="false"/>
|
||||
<ROW File="launcherprerequisites.exe" Component_="launcherprerequisites.exe" FileName="LAUNCH~1.EXE|launcher-prerequisites.exe" Attributes="0" SourcePath="..\Prerequisites\launcher-prerequisites.exe" SelfReg="false"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.AiRemoveFileComponent">
|
||||
<ROW RemoveFile="__1" Condition="(AI_CLEAN_RESOURCES_UNINSTALL = "1") AND (NOT UPGRADINGPRODUCTCODE)" Options="3"/>
|
||||
@@ -295,7 +293,6 @@
|
||||
<ROW Action="AI_RemoveExternalUIStub" Type="1" Source="ExternalUICleaner.dll" Target="RemoveExternalUIStub"/>
|
||||
<ROW Action="AI_ResolveKnownFolders" Type="1" Source="aicustact.dll" Target="AI_ResolveKnownFolders"/>
|
||||
<ROW Action="AI_RunFinishActions" Type="1" Source="aicustact.dll" Target="RunFinishActions" WithoutSeq="true"/>
|
||||
<ROW Action="AI_SETMIXINSTLOCATION" Type="1" Source="aicustact.dll" Target="MixedAllUsersInstallLocation"/>
|
||||
<ROW Action="AI_SHOW_LOG" Type="65" Source="aicustact.dll" Target="LaunchLogFile" WithoutSeq="true"/>
|
||||
<ROW Action="AI_STORE_LOCATION" Type="51" Source="ARPINSTALLLOCATION" Target="[APPDIR]"/>
|
||||
<ROW Action="SET_APPDIR" Type="307" Source="APPDIR" Target="[ProgramFilesFolder][Manufacturer]\[ProductName]" MultiBuildTarget="DefaultBuild:[ProgramFiles64Folder][ProductName]"/>
|
||||
@@ -318,14 +315,13 @@
|
||||
<ROW Feature_="Stride" Component_="Stride.exe"/>
|
||||
<ROW Feature_="Stride" Component_="Targets"/>
|
||||
<ROW Feature_="Stride" Component_="UserInstall"/>
|
||||
<ROW Feature_="Stride" Component_="launcherprerequisites.exe"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiIconsComponent">
|
||||
<ROW Name="Launcher.exe" SourcePath="Launcher.ico" Index="0"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstExSeqComponent">
|
||||
<ROW Action="AI_DOWNGRADE" Condition="AI_NEWERPRODUCTFOUND AND (UILevel <> 5)" Sequence="210"/>
|
||||
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="747"/>
|
||||
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="746"/>
|
||||
<ROW Action="AI_STORE_LOCATION" Condition="(Not Installed) OR REINSTALL" Sequence="1502"/>
|
||||
<ROW Action="AI_PREPARE_UPGRADE" Condition="AI_UPGRADE="No" AND (Not Installed)" Sequence="1397"/>
|
||||
<ROW Action="AI_ResolveKnownFolders" Sequence="52"/>
|
||||
@@ -333,7 +329,6 @@
|
||||
<ROW Action="AI_DEL_EMPTY_SHORTCUTDIR" Condition="NOT (REMOVE="ALL")" Sequence="6402"/>
|
||||
<ROW Action="AI_DATA_SETTER_1" Condition="NOT (REMOVE="ALL")" Sequence="6401"/>
|
||||
<ROW Action="AI_AiRemoveFilesRollback" Sequence="3099"/>
|
||||
<ROW Action="AI_SETMIXINSTLOCATION" Sequence="746"/>
|
||||
<ROW Action="Stride.exe" Condition="( Installed AND ( REMOVE = "ALL" OR AI_INSTALL_MODE = "Remove" ) AND NOT UPGRADINGPRODUCTCODE )" Sequence="1201"/>
|
||||
<ROW Action="AI_GetArpIconPath" Sequence="1401"/>
|
||||
<ROW Action="AI_RemoveExternalUIStub" Condition="(REMOVE="ALL") AND ((VersionNT > 500) OR((VersionNT = 500) AND (ServicePackLevel >= 4)))" Sequence="1501"/>
|
||||
@@ -351,18 +346,17 @@
|
||||
<ROW Action="AI_ExtractLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="1549" Builds="DefaultBuild"/>
|
||||
<ROW Action="AI_DeleteRLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="1548" Builds="DefaultBuild"/>
|
||||
<ROW Action="AI_DeleteLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="6599" Builds="DefaultBuild"/>
|
||||
<ROW Action="AI_AiRemoveFilesImmediate" Sequence="3498"/>
|
||||
<ROW Action="AI_AiRemoveFilesRebootImmediate" Sequence="3499"/>
|
||||
<ROW Action="AI_AiRemoveFilesRebootImmediate" Sequence="3498"/>
|
||||
<ROW Action="AI_AiRemoveFilesImmediate" Sequence="3499"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
|
||||
<ROW Action="ExecuteAction" Sequence="1295" SeqType="0" MsiKey="ExecuteAction"/>
|
||||
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="747"/>
|
||||
<ROW Action="AI_RESTORE_LOCATION" Condition="APPDIR=""" Sequence="746"/>
|
||||
<ROW Action="AI_ResolveKnownFolders" Sequence="53"/>
|
||||
<ROW Action="AI_DpiContentScale" Sequence="52"/>
|
||||
<ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Sequence="99"/>
|
||||
<ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Condition="AI_SETUPEXEPATH_ORIGINAL" Sequence="103"/>
|
||||
<ROW Action="AI_FinishActions" Condition="AI_INSTALL AND AiSkipExitDlg" Sequence="1296"/>
|
||||
<ROW Action="AI_SETMIXINSTLOCATION" Sequence="746"/>
|
||||
<ROW Action="WelcomeDlg" Condition="AI_INSTALL" Sequence="1230" SeqType="3" MsiKey="WelcomeDlg"/>
|
||||
<ROW Action="MaintenanceTypeDlg" Condition="AI_MAINT" Sequence="1250" SeqType="3" MsiKey="MaintenanceTypeDlg"/>
|
||||
<ROW Action="AI_EnableDebugLog" Sequence="51"/>
|
||||
@@ -372,7 +366,7 @@
|
||||
<ROW Action="AI_ChooseTextStyles" Sequence="74"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiLaunchConditionsComponent">
|
||||
<ROW Condition="( Version9X OR ( NOT VersionNT64 ) OR ( VersionNT64 AND ((VersionNT64 <> 601) OR (ServicePackLevel <> 0) OR (MsiNTProductType <> 1)) ) )" Description="[ProductName] cannot be installed on the following Windows versions: [WindowsTypeNT64Display]." DescriptionLocId="AI.LaunchCondition.NoSpecificNT64" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="( Version9X OR ( NOT VersionNT64 ) OR ( VersionNT64 AND ((VersionNT64 <> 601) OR (MsiNTProductType <> 1)) AND ((VersionNT64 <> 601) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 602) OR (MsiNTProductType <> 1)) AND ((VersionNT64 <> 602) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 603) OR (MsiNTProductType <> 1)) AND ((VersionNT64 <> 603) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 1000) OR (MsiNTProductType <> 1) OR (WindowsBuild <> 10240)) AND ((VersionNT64 <> 1000) OR (MsiNTProductType <> 1) OR (WindowsBuild <> 10586)) ) )" Description="[ProductName] cannot be installed on the following Windows versions: [WindowsTypeNT64Display]." DescriptionLocId="AI.LaunchCondition.NoSpecificNT64" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="( Version9X OR VersionNT64 )" Description="[ProductName] cannot be installed on [WindowsTypeNTDisplay]" DescriptionLocId="AI.LaunchCondition.NoNT" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="((VersionNT <> 501) AND (VersionNT <> 502))" Description="[ProductName] cannot be installed on [WindowsTypeNT5XDisplay]." DescriptionLocId="AI.LaunchCondition.NoNT5X" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="(VersionNT <> 400)" Description="[ProductName] cannot be installed on the following Windows versions: [WindowsTypeNT40Display]" DescriptionLocId="AI.LaunchCondition.NoNT40" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
@@ -457,11 +451,4 @@
|
||||
<ROW UpgradeCode="[|UpgradeCode]" VersionMin="0.0.1" VersionMax="[|ProductVersion]" Attributes="257" ActionProperty="OLDPRODUCTS"/>
|
||||
<ROW UpgradeCode="[|UpgradeCode]" VersionMin="[|ProductVersion]" Attributes="2" ActionProperty="AI_NEWERPRODUCTFOUND"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.PreReqComponent">
|
||||
<ROW PrereqKey="A6D7F21EAEB4C4A901F0979CF110936" DisplayName=".NET Framework 4.7.2" SetupFileUrl="https://download.microsoft.com/download/6/E/4/6E48E8AB-DC00-419E-9704-06DD46E5F81D/NDP472-KB4054530-x86-x64-AllOS-ENU.exe" Location="1" ExactSize="83943272" WinNTVersions="Windows 7 RTM x86, Windows 10 version 1507 x86, Windows 10 version 1511 x86, Windows 10 version 1803 x86, Windows 10 version 1809 x86" WinNT64Versions="Windows 7 RTM x64, Windows Server 2008 R2 RTM x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64, Windows 10 version 1803 x64, Windows 10 version 1809 x64" Operator="1" ComLine="[AI_PREREQ_UILEVEL_SWITCH]" NoUiComLine="/q /norestart" Options="xkq" MD5="87450cfa175585b23a76bbd7052ee66b" TargetName=".NET Framework 4.7.2"/>
|
||||
<ATTRIBUTE name="PrereqsOrder" value="A6D7F21EAEB4C4A901F0979CF110936"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.PreReqSearchComponent">
|
||||
<ROW SearchKey="A6D7F21EAEB4C4A901F0979CF110936Rele" Prereq="A6D7F21EAEB4C4A901F0979CF110936" SearchType="9" SearchString="HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Release" RefContent="G461813" Order="1" Property="PreReqSearch_A6D7F21EAEB4C4A901F097"/>
|
||||
</COMPONENT>
|
||||
</DOCUMENT>
|
||||
|
||||
@@ -1,111 +0,0 @@
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using System.Windows.Forms;
|
||||
using Microsoft.Win32;
|
||||
// Copyright (c) .NET Foundation and Contributors (https://dotnetfoundation.org/ & https://stride3d.net) and Silicon Studio Corp. (https://www.siliconstudio.co.jp)
|
||||
// Distributed under the MIT license. See the LICENSE.md file in the project root for more information.
|
||||
namespace Stride.LauncherApp
|
||||
{
|
||||
internal static class PrerequisitesValidator
|
||||
{
|
||||
private const string LauncherPrerequisites = @"Prerequisites\launcher-prerequisites.exe";
|
||||
|
||||
private static bool CheckDotNet4Version(int requiredVersion)
|
||||
{
|
||||
// Check for .NET v4 version
|
||||
using (var ndpKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full"))
|
||||
{
|
||||
if (ndpKey == null)
|
||||
return false;
|
||||
|
||||
int releaseKey = Convert.ToInt32(ndpKey.GetValue("Release"));
|
||||
if (releaseKey < requiredVersion)
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private static bool ValidateDotNet4Version(StringBuilder prerequisiteLog)
|
||||
{
|
||||
var result = true;
|
||||
|
||||
// Check for .NET 4.7.2+
|
||||
// Note: it should now always be the case since renaming: Stride launcher is a separate forced setup to run, and it checks for 4.7.2.
|
||||
// Still keeping code for future framework updates
|
||||
if (!CheckDotNet4Version(461808))
|
||||
{
|
||||
prerequisiteLog.AppendLine("- .NET framework 4.7.2");
|
||||
result = false;
|
||||
}
|
||||
|
||||
// Everything passed
|
||||
return result;
|
||||
}
|
||||
|
||||
internal static void Validate(string[] args)
|
||||
{
|
||||
// Check prerequisites
|
||||
var prerequisiteLog = new StringBuilder();
|
||||
var prerequisitesFailedOnce = false;
|
||||
while (!ValidateDotNet4Version(prerequisiteLog))
|
||||
{
|
||||
prerequisitesFailedOnce = true;
|
||||
|
||||
// Check if launcher prerequisite installer exists
|
||||
if (!File.Exists(LauncherPrerequisites))
|
||||
{
|
||||
MessageBox.Show($"Some prerequisites are missing, but no prerequisite installer was found!\n\n{prerequisiteLog}\n\nPlease install them manually or report the problem.", "Prerequisite error", MessageBoxButtons.OK);
|
||||
return;
|
||||
}
|
||||
|
||||
// One of the prerequisite failed, launch the prerequisite installer
|
||||
var prerequisitesApproved = MessageBox.Show($"Some prerequisites are missing, do you want to install them?\n\n{prerequisiteLog}", "Install missing prerequisites?", MessageBoxButtons.OKCancel);
|
||||
if (prerequisitesApproved == DialogResult.Cancel)
|
||||
return;
|
||||
|
||||
try
|
||||
{
|
||||
var prerequisitesInstallerProcess = Process.Start(LauncherPrerequisites);
|
||||
if (prerequisitesInstallerProcess == null)
|
||||
{
|
||||
MessageBox.Show($"There was an error running the prerequisite installer {LauncherPrerequisites}.", "Prerequisite error", MessageBoxButtons.OK);
|
||||
return;
|
||||
}
|
||||
|
||||
prerequisitesInstallerProcess.WaitForExit();
|
||||
}
|
||||
catch
|
||||
{
|
||||
MessageBox.Show($"There was an error running the prerequisite installer {LauncherPrerequisites}.", "Prerequisite error", MessageBoxButtons.OK);
|
||||
return;
|
||||
}
|
||||
prerequisiteLog.Length = 0;
|
||||
}
|
||||
|
||||
if (!prerequisitesFailedOnce)
|
||||
{
|
||||
return;
|
||||
}
|
||||
// If prerequisites failed at least once, we want to restart ourselves to run with proper .NET framework
|
||||
var exeLocation = Launcher.GetExecutablePath();
|
||||
if (File.Exists(exeLocation))
|
||||
{
|
||||
// Forward arguments
|
||||
for (int i = 0; i < args.Length; ++i)
|
||||
{
|
||||
// Quote arguments with spaces
|
||||
if (args[i].IndexOf(' ') != -1)
|
||||
args[i] = '\"' + args[i] + '\"';
|
||||
}
|
||||
var arguments = string.Join(" ", args);
|
||||
|
||||
// Start process
|
||||
Process.Start(exeLocation, arguments);
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,6 @@ namespace Stride.LauncherApp
|
||||
[STAThread]
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
PrerequisitesValidator.Validate(args);
|
||||
Launcher.Main(args);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,5 @@ force-reinstall: 5.0.1 https://stride3d.net/files/StrideSetup.exe (note: used in
|
||||
<files>
|
||||
<!-- Note: we still have Stride.exe for backward compatibility -->
|
||||
<file src="Stride.Launcher.exe" target="tools" />
|
||||
<file src="..\..\..\..\Prerequisites\launcher-prerequisites.exe" target="tools\Prerequisites" />
|
||||
</files>
|
||||
</package>
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
<ROW Property="WindowsTypeNT5XDisplay" MultiBuildValue="DefaultBuild:Windows XP/2003" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT60" MultiBuildValue="DefaultBuild:Windows Vista/Server 2008" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT60Display" MultiBuildValue="DefaultBuild:Windows Vista/Server 2008" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT64" MultiBuildValue="DefaultBuild:Windows 7 RTM x64" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT64Display" MultiBuildValue="DefaultBuild:Windows 7 RTM x64" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT64" MultiBuildValue="DefaultBuild:Windows 7 x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 8.1 x64, Windows Server 2012 R2 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNT64Display" MultiBuildValue="DefaultBuild:Windows 7 x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 8.1 x64, Windows Server 2012 R2 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" ValueLocId="-"/>
|
||||
<ROW Property="WindowsTypeNTDisplay" MultiBuildValue="DefaultBuild:32-bit Windows versions" ValueLocId="-"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiDirsComponent">
|
||||
@@ -53,7 +53,7 @@
|
||||
<ROW Action="AI_CleanPrePrereq" Condition="AI_BOOTSTRAPPER AND (NOT AI_PrereqsFulfilled)" Sequence="699"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.BuildComponent">
|
||||
<ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="." PackageFileName="install-prerequisites" Languages="en_GB" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" MsiCmdLine="/qn" ExtUI="true" UseLargeSchema="true" MsiPackageType="x64" UACExecutionLevel="2"/>
|
||||
<ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="." PackageFileName="install-prerequisites" Languages="en_GB" InstallationType="4" CabsLocation="1" PackageType="1" FilesInsideExe="true" ExtractionFolder="[AppDataFolder][|Manufacturer]\[|ProductName] [|ProductVersion]\install" MsiCmdLine="/qn" ExtUI="true" UseLargeSchema="true" MsiPackageType="x64"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.DictionaryComponent">
|
||||
<ROW Path="<AI_DICTS>ui.ail"/>
|
||||
@@ -89,8 +89,11 @@
|
||||
<ROW Action="AI_ExtractFiles" Description="Extracting files from archive" DescriptionLocId="ActionText.Description.AI_ExtractLzma" TemplateLocId="-"/>
|
||||
<ROW Action="AI_ExtractLzma" Description="Extracting files from archive" DescriptionLocId="ActionText.Description.AI_ExtractLzma" TemplateLocId="-"/>
|
||||
<ROW Action="AI_ExtractPrereq" Description="Extracting prerequisite software" DescriptionLocId="ActionText.Description.AI_ExtractPrereq" Template="[1]" TemplateLocId="ActionText.Template.AI_ExtractPrereq"/>
|
||||
<ROW Action="AI_InstallPostPrerequisite" Description="Configuring prerequisite software" DescriptionLocId="ActionText.Description.AI_InstallPrerequisite" Template="[1]" TemplateLocId="ActionText.Template.AI_InstallPrerequisite"/>
|
||||
<ROW Action="AI_InstallPrePrerequisite" Description="Configuring prerequisite software" DescriptionLocId="ActionText.Description.AI_InstallPrerequisite" Template="[1]" TemplateLocId="ActionText.Template.AI_InstallPrerequisite"/>
|
||||
<ROW Action="AI_InstallPrerequisite" Description="Configuring prerequisite software" DescriptionLocId="ActionText.Description.AI_InstallPrerequisite" Template="[1]" TemplateLocId="ActionText.Template.AI_InstallPrerequisite"/>
|
||||
<ROW Action="AI_VerifyPrePrereq" Description="Verifying prerequisites" DescriptionLocId="ActionText.Description.AI_VerifyPrereq" Template="[1] was not installed correctly." TemplateLocId="ActionText.Template.AI_VerifyPrereq"/>
|
||||
<ROW Action="AI_VerifyPrereq" Description="Verifying prerequisites" DescriptionLocId="ActionText.Description.AI_VerifyPrereq" Template="[1] was not installed correctly." TemplateLocId="ActionText.Template.AI_VerifyPrereq"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiAppSearchComponent">
|
||||
<ROW Property="AI_SETUPEXEPATH" Signature_="AI_EXE_PATH_CU" Builds="DefaultBuild"/>
|
||||
@@ -131,6 +134,10 @@
|
||||
<ROW Dialog_="ExitDialog" Control_="Finish" Event="DoAction" Argument="AI_CleanPrePrereq" Condition="1" Ordering="301"/>
|
||||
<ROW Dialog_="FatalError" Control_="Finish" Event="DoAction" Argument="AI_CleanPrePrereq" Condition="1" Ordering="103"/>
|
||||
<ROW Dialog_="UserExit" Control_="Finish" Event="DoAction" Argument="AI_CleanPrePrereq" Condition="1" Ordering="101"/>
|
||||
<ROW Dialog_="FatalError" Control_="Finish" Event="DoAction" Argument="AI_RollbackPrereq" Condition="1" Ordering="104"/>
|
||||
<ROW Dialog_="ExitDialog" Control_="Finish" Event="DoAction" Argument="AI_CleanPrereq" Condition="1" Ordering="302"/>
|
||||
<ROW Dialog_="FatalError" Control_="Finish" Event="DoAction" Argument="AI_CleanPrereq" Condition="1" Ordering="105"/>
|
||||
<ROW Dialog_="UserExit" Control_="Finish" Event="DoAction" Argument="AI_CleanPrereq" Condition="1" Ordering="102"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiCreateFolderComponent">
|
||||
<ROW Directory_="APPDIR" Component_="APPDIR" ManualDelete="true"/>
|
||||
@@ -139,6 +146,7 @@
|
||||
<ROW Action="AI_AppSearchEx" Type="1" Source="Prereq.dll" Target="DoAppSearchEx"/>
|
||||
<ROW Action="AI_BACKUP_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH_ORIGINAL" Target="[AI_SETUPEXEPATH]"/>
|
||||
<ROW Action="AI_CleanPrePrereq" Type="65" Source="Prereq.dll" Target="CleanPrereq" WithoutSeq="true"/>
|
||||
<ROW Action="AI_CleanPrereq" Type="65" Source="Prereq.dll" Target="CleanPrereq" WithoutSeq="true"/>
|
||||
<ROW Action="AI_DATA_SETTER" Type="51" Source="CustomActionData" Target="[AI_SETUPEXEPATH]"/>
|
||||
<ROW Action="AI_DOWNGRADE" Type="19" Target="4010"/>
|
||||
<ROW Action="AI_DeleteCadLzma" Type="51" Source="AI_DeleteLzma" Target="[AI_SETUPEXEPATH]"/>
|
||||
@@ -154,16 +162,22 @@
|
||||
<ROW Action="AI_ExtractPrereq" Type="65" Source="Prereq.dll" Target="ExtractPrereq"/>
|
||||
<ROW Action="AI_FindExeLzma" Type="1" Source="lzmaextractor.dll" Target="FindEXE"/>
|
||||
<ROW Action="AI_InstallModeCheck" Type="1" Source="aicustact.dll" Target="UpdateInstallMode" WithoutSeq="true"/>
|
||||
<ROW Action="AI_InstallPostPrerequisite" Type="1" Source="Prereq.dll" Target="InstallPostPrereq"/>
|
||||
<ROW Action="AI_InstallPrePrerequisite" Type="65" Source="Prereq.dll" Target="InstallPrePrereq"/>
|
||||
<ROW Action="AI_InstallPrerequisite" Type="1" Source="Prereq.dll" Target="InstallPrereq"/>
|
||||
<ROW Action="AI_MigrateInstallerProps" Type="1" Source="aicustact.dll" Target="MigrateInstallerProps"/>
|
||||
<ROW Action="AI_PREPARE_UPGRADE" Type="65" Source="aicustact.dll" Target="PrepareUpgrade"/>
|
||||
<ROW Action="AI_PRESERVE_INSTALL_TYPE" Type="65" Source="aicustact.dll" Target="PreserveInstallType"/>
|
||||
<ROW Action="AI_RESTORE_AI_SETUPEXEPATH" Type="51" Source="AI_SETUPEXEPATH" Target="[AI_SETUPEXEPATH_ORIGINAL]"/>
|
||||
<ROW Action="AI_RESTORE_LOCATION" Type="65" Source="aicustact.dll" Target="RestoreLocation"/>
|
||||
<ROW Action="AI_ResolveKnownFolders" Type="1" Source="aicustact.dll" Target="AI_ResolveKnownFolders"/>
|
||||
<ROW Action="AI_RestoreInstallerProps" Type="1" Source="aicustact.dll" Target="RestoreInstallerProps" WithoutSeq="true"/>
|
||||
<ROW Action="AI_RollbackPrePrereq" Type="65" Source="Prereq.dll" Target="RollbackPrePrereq" WithoutSeq="true"/>
|
||||
<ROW Action="AI_RollbackPrereq" Type="65" Source="Prereq.dll" Target="RollbackPrereq" WithoutSeq="true"/>
|
||||
<ROW Action="AI_SHOW_LOG" Type="65" Source="aicustact.dll" Target="LaunchLogFile" WithoutSeq="true"/>
|
||||
<ROW Action="AI_STORE_LOCATION" Type="51" Source="ARPINSTALLLOCATION" Target="[APPDIR]"/>
|
||||
<ROW Action="AI_VerifyPrePrereq" Type="1" Source="Prereq.dll" Target="VerifyPrePrereq"/>
|
||||
<ROW Action="AI_VerifyPrereq" Type="1" Source="Prereq.dll" Target="VerifyPrereq"/>
|
||||
<ROW Action="SET_APPDIR" Type="307" Source="APPDIR" Target="[ProgramFilesFolder][Manufacturer]\[ProductName]" MultiBuildTarget="DefaultBuild:[AppDataFolder][ProductName]"/>
|
||||
<ROW Action="SET_SHORTCUTDIR" Type="307" Source="SHORTCUTDIR" Target="[ProgramMenuFolder][ProductName]"/>
|
||||
<ROW Action="SET_TARGETDIR_TO_APPDIR" Type="51" Source="TARGETDIR" Target="[APPDIR]"/>
|
||||
@@ -190,7 +204,9 @@
|
||||
<ROW Action="AI_FindExeLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="196" Builds="DefaultBuild"/>
|
||||
<ROW Action="AI_ExtractLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="1549" Builds="DefaultBuild"/>
|
||||
<ROW Action="AI_DeleteRLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="1548" Builds="DefaultBuild"/>
|
||||
<ROW Action="AI_DeleteLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="6599" Builds="DefaultBuild"/>
|
||||
<ROW Action="AI_DeleteLzma" Condition="SETUPEXEDIR="" AND Installed AND (REMOVE<>"ALL") AND (AI_INSTALL_MODE<>"Remove") AND (NOT PATCH)" Sequence="6598" Builds="DefaultBuild"/>
|
||||
<ROW Action="AI_MigrateInstallerProps" Condition="SETUPEXEDIR AND ((UILevel = 2) OR (UILevel = 3))" Sequence="6599"/>
|
||||
<ROW Action="AI_VerifyPrereq" Sequence="1101"/>
|
||||
<ATTRIBUTE name="RegisterProduct" value="false"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiInstallUISequenceComponent">
|
||||
@@ -203,10 +219,15 @@
|
||||
<ROW Action="AI_AppSearchEx" Sequence="101"/>
|
||||
<ROW Action="AI_EnableDebugLog" Sequence="51"/>
|
||||
<ROW Action="AI_PRESERVE_INSTALL_TYPE" Sequence="199"/>
|
||||
<ROW Action="AI_InstallPrePrerequisite" Condition="Installed" Sequence="1298"/>
|
||||
<ROW Action="AI_InstallPrePrerequisite" Condition="Installed" Sequence="1295"/>
|
||||
<ROW Action="AI_DownloadPrereq" Sequence="1296"/>
|
||||
<ROW Action="AI_ExtractPrereq" Sequence="1297"/>
|
||||
<ROW Action="AI_InstallPrerequisite" Sequence="1298"/>
|
||||
<ROW Action="AI_InstallPostPrerequisite" Sequence="1300"/>
|
||||
<ROW Action="AI_CleanPrereq" Sequence="1301"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.MsiLaunchConditionsComponent">
|
||||
<ROW Condition="( Version9X OR ( NOT VersionNT64 ) OR ( VersionNT64 AND ((VersionNT64 <> 601) OR (ServicePackLevel <> 0) OR (MsiNTProductType <> 1)) ) )" Description="[ProductName] can not be installed on the following Windows versions: [WindowsTypeNT64Display]." DescriptionLocId="AI.LaunchCondition.NoSpecificNT64" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="( Version9X OR ( NOT VersionNT64 ) OR ( VersionNT64 AND ((VersionNT64 <> 601) OR (MsiNTProductType <> 1)) AND ((VersionNT64 <> 601) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 602) OR (MsiNTProductType <> 1)) AND ((VersionNT64 <> 602) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 603) OR (MsiNTProductType <> 1)) AND ((VersionNT64 <> 603) OR (MsiNTProductType = 1)) AND ((VersionNT64 <> 1000) OR (MsiNTProductType <> 1) OR (WindowsBuild <> 10240)) AND ((VersionNT64 <> 1000) OR (MsiNTProductType <> 1) OR (WindowsBuild <> 10586)) ) )" Description="[ProductName] can not be installed on the following Windows versions: [WindowsTypeNT64Display]." DescriptionLocId="AI.LaunchCondition.NoSpecificNT64" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="( Version9X OR VersionNT64 )" Description="[ProductName] cannot be installed on [WindowsTypeNTDisplay]" DescriptionLocId="AI.LaunchCondition.NoNT" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="((VersionNT <> 501) AND (VersionNT <> 502))" Description="[ProductName] cannot be installed on [WindowsTypeNT5XDisplay]." DescriptionLocId="AI.LaunchCondition.NoNT5X" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
<ROW Condition="(VersionNT <> 400)" Description="[ProductName] cannot be installed on the following Windows versions: [WindowsTypeNT40Display]" DescriptionLocId="AI.LaunchCondition.NoNT40" IsPredefined="true" Builds="DefaultBuild"/>
|
||||
@@ -236,22 +257,14 @@
|
||||
<ROW UpgradeCode="[|UpgradeCode]" VersionMin="[|ProductVersion]" Attributes="2" ActionProperty="AI_NEWERPRODUCTFOUND"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.PreReqComponent">
|
||||
<ROW PrereqKey="A6D7F21EAEB4C4A901F0979CF110936" DisplayName=".NET Framework 4.7.2" SetupFileUrl="https://download.microsoft.com/download/6/E/4/6E48E8AB-DC00-419E-9704-06DD46E5F81D/NDP472-KB4054530-x86-x64-AllOS-ENU.exe" Location="1" ExactSize="83943272" WinNTVersions="Windows 7 RTM x86, Windows 10 version 1507 x86, Windows 10 version 1511 x86, Windows 10 version 1803 x86, Windows 10 version 1809 x86" WinNT64Versions="Windows 7 RTM x64, Windows Server 2008 R2 RTM x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64, Windows 10 version 1803 x64, Windows 10 version 1809 x64" Operator="1" ComLine="[AI_PREREQ_UILEVEL_SWITCH]" NoUiComLine="/qf /norestart" Options="xkq" MD5="87450cfa175585b23a76bbd7052ee66b" TargetName=".NET Framework 4.7.2"/>
|
||||
<ROW PrereqKey="B35B3203FEB4CFFA576A27CB835D3E6" DisplayName="Visual C++ Redistributable for Visual Studio 2019 x86" VersionMin="14.10" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/0c1cfec3-e028-4996-8bb7-0c751ba41e32/1abed1573f36075bfdfc538a2af00d37/vc_redist.x86.exe" Location="1" ExactSize="0" WinNTVersions="Windows 7 RTM x86" WinNT64Versions="Windows 7 RTM x64, Windows Server 2008 R2 RTM x64" Operator="0" ComLine="/passive /norestart [AI_PREREQ_UILEVEL_SWITCH]" NoUiComLine="/quiet" Options="ymq" TargetName="Visual C++ Redistributable for Visual Studio 2019?vcredist_x86.exe"/>
|
||||
<ROW PrereqKey="D36C9FE0826D4D2B9C2DDCCE2C83E860" DisplayName="Visual C++ Redistributable for Visual Studio 2019 x64" VersionMin="14.10" SetupFileUrl="https://download.visualstudio.microsoft.com/download/pr/cc0046d4-e7b4-45a1-bd46-b1c079191224/9c4042a4c2e6d1f661f4c58cf4d129e9/vc_redist.x64.exe" Location="1" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows 7 RTM x64, Windows Server 2008 R2 RTM x64" Operator="1" ComLine="/passive /norestart [AI_PREREQ_UILEVEL_SWITCH]" NoUiComLine="/quiet" Options="xymq" TargetName="Visual C++ Redistributable for Visual Studio 2019?vcredist_x64.exe"/>
|
||||
<ROW PrereqKey="FAC9C433D3044829E6669A2C6FF54E6" DisplayName=".NET SDK 10.0.100 x64" VersionMin="8.0" SetupFileUrl="https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100/dotnet-sdk-10.0.100-win-x64.exe" Location="1" ExactSize="215342200" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows 7 RTM x64, Windows Server 2008 R2 RTM x64, Windows 8 x64, Windows Server 2012 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="[AI_PREREQ_UILEVEL_SWITCH]" NoUiComLine="/qf /norestart" Options="xyq" MD5="8843608d1e02f38b65e0d311b9614ff0" TargetName=".NET 10.0"/>
|
||||
<ROW PrereqKey="MICROSOFTDIRECTXF" DisplayName="Microsoft® DirectX for Windows®" VersionMin="4.9.0.904" SetupFileUrl="DirectX11\DXSETUP.exe" Location="0" ExactSize="0" Operator="1" ComLine="/silent" Options="yz" TargetName="DXSETUP.exe" AdditionalFiles="APR2007_xinput_x64.cab|APR2007_xinput_x86.cab|DSETUP.dll|dsetup32.dll|dxdllreg_x86.cab|dxupdate.cab|Feb2010_X3DAudio_x64.cab|Feb2010_X3DAudio_x86.cab|Jun2010_D3DCompiler_43_x64.cab|Jun2010_D3DCompiler_43_x86.cab|Jun2010_XAudio_x64.cab|Jun2010_XAudio_x86.cab"/>
|
||||
<ATTRIBUTE name="PrereqsOrder" value="D36C9FE0826D4D2B9C2DDCCE2C83E860 B35B3203FEB4CFFA576A27CB835D3E6 MICROSOFTDIRECTXF A6D7F21EAEB4C4A901F0979CF110936 FAC9C433D3044829E6669A2C6FF54E6"/>
|
||||
<ROW PrereqKey="D36C9FE0826D4D2B9C2DDCCE2C83E860" DisplayName="Visual C++ Redistributable (x64)" VersionMin="14.10" SetupFileUrl="https://aka.ms/vs/17/release/vc_redist.x64.exe" Location="1" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows 7 x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 8.1 x64, Windows Server 2012 R2 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/passive /norestart [AI_PREREQ_UILEVEL_SWITCH]" NoUiComLine="/quiet" Options="xymq" TargetName="Visual C++ Redistributable (x64)?vc_redist.x64.exe"/>
|
||||
<ROW PrereqKey="FAC9C433D3044829E6669A2C6FF54E6" DisplayName=".NET SDK 10.0.100 x64" VersionMin="8.0" SetupFileUrl="https://builds.dotnet.microsoft.com/dotnet/Sdk/10.0.100/dotnet-sdk-10.0.100-win-x64.exe" Location="1" ExactSize="215342200" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows 7 x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 8.1 x64, Windows Server 2012 R2 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="[AI_PREREQ_UILEVEL_SWITCH]" NoUiComLine="/qf /norestart" Options="xyq" MD5="8843608d1e02f38b65e0d311b9614ff0" TargetName=".NET 10.0"/>
|
||||
<ROW PrereqKey="REQUIREDAPPLICATION" DisplayName="Visual C++ Redistributable (ARM64)" SetupFileUrl="https://aka.ms/vs/17/release/vc_redist.arm64.exe" Location="1" ExactSize="0" WinNTVersions="Windows 9x/ME/NT/2000/XP/Vista/Windows 7/Windows 8 x86/Windows 8.1 x86/Windows 10 x86" WinNT64Versions="Windows 7 x64, Windows Server 2008 R2 x64, Windows 8 x64, Windows Server 2012 x64, Windows 8.1 x64, Windows Server 2012 R2 x64, Windows 10 version 1507 x64, Windows 10 version 1511 x64" Operator="1" ComLine="/passive /norestart [AI_PREREQ_UILEVEL_SWITCH]" NoUiComLine="/quiet" Options="yqxd" TargetName="Visual C++ Redistributable (ARM64)?vc_redist.arm64.exe"/>
|
||||
<ATTRIBUTE name="PrereqsOrder" value="D36C9FE0826D4D2B9C2DDCCE2C83E860 REQUIREDAPPLICATION FAC9C433D3044829E6669A2C6FF54E6"/>
|
||||
</COMPONENT>
|
||||
<COMPONENT cid="caphyon.advinst.msicomp.PreReqSearchComponent">
|
||||
<ROW SearchKey="A6D7F21EAEB4C4A901F0979CF110936Rele" Prereq="A6D7F21EAEB4C4A901F0979CF110936" SearchType="9" SearchString="HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Release" RefContent="G461813" Order="1" Property="PreReqSearch_A6D7F21EAEB4C4A901F097"/>
|
||||
<ROW SearchKey="B35B3203FEB4CFFA576A27CB835D3E6Syst" Prereq="B35B3203FEB4CFFA576A27CB835D3E6" SearchType="0" SearchString="[SystemFolder]vcruntime140.dll" VerMin="14.22.27821" Order="2" Property="PreReqSearch_2_B35B3203FEB4CFFA576A"/>
|
||||
<ROW SearchKey="B35B3203FEB4CFFA576A27CB835D3E6Vers" Prereq="B35B3203FEB4CFFA576A27CB835D3E6" SearchType="2" SearchString="HKLM\SOFTWARE\Microsoft\DevDiv\VC\Servicing\14.0\RuntimeMinimum\Version" VerMin="14.22.27821" Order="1" Property="PreReqSearch_B35B3203FEB4CFFA576A27"/>
|
||||
<ROW SearchKey="D36C9FE0826D4D2B9C2DDCCE2C83E860Ver" Prereq="D36C9FE0826D4D2B9C2DDCCE2C83E860" SearchType="2" SearchString="HKLM\SOFTWARE\Microsoft\DevDiv\VC\Servicing\14.0\RuntimeMinimum\Version" VerMin="14.22.27821" Order="1" Property="PreReqSearch_D36C9FE0826D4D2B9C2DDC"/>
|
||||
<ROW SearchKey="FAC9C433D3044829E6669A2C6FF54E6Micr" Prereq="FAC9C433D3044829E6669A2C6FF54E6" SearchType="14" SearchString="[ProgramFiles64Folder]dotnet\sdk" VerMin="10.0.100" VerMax="10.10000.65535" Order="1" Property="PreReqSearch_FAC9C433D3044829E6669A"/>
|
||||
<ROW SearchKey="SystemFolderd3dcompiler_43.dll" Prereq="MICROSOFTDIRECTXF" SearchType="0" SearchString="[SystemFolder]d3dcompiler_43.dll" VerMin="9.29.952.3111" Order="2" Property="PreReqSearch_4"/>
|
||||
<ROW SearchKey="SystemFolderfile.dll_1" Prereq="MICROSOFTDIRECTXF" SearchType="0" SearchString="[SystemFolder]xaudio2_7.dll" VerMin="9.29.1962.0" Order="1" Property="PreReqSearch_3"/>
|
||||
<ROW SearchKey="SystemFolderx3daudio1_7.dll" Prereq="MICROSOFTDIRECTXF" SearchType="0" SearchString="[SystemFolder]x3daudio1_7.dll" VerMin="9.28.1886.0" Order="3" Property="PreReqSearch_6"/>
|
||||
<ROW SearchKey="SystemFolderxinput1_3.dll" Prereq="MICROSOFTDIRECTXF" SearchType="0" SearchString="[SystemFolder]xinput1_3.dll" VerMin="9.18.944.0" Order="4" Property="PreReqSearch_7"/>
|
||||
<ROW SearchKey="SystemFolderfile.dll" Prereq="REQUIREDAPPLICATION" SearchType="2" SearchString="HKLM\SOFTWARE\Microsoft\DevDiv\VC\Servicing\14.0\Runtime_arm64\Version" VerMin="14.42.34433" Order="1" Property="PreReqSearch"/>
|
||||
</COMPONENT>
|
||||
</DOCUMENT>
|
||||
|
||||
Reference in New Issue
Block a user