Files
velopack/src/vpk/Velopack.Packaging.Windows/Msi/MsiTemplateData.cs
2025-05-26 10:13:00 +01:00

60 lines
2.5 KiB
C#

namespace Velopack.Packaging.Windows.Msi;
public class MsiTemplateData
{
public string WixId;
public string SourceDirectoryPath;
public string RustNativeModulePath;
public bool Is64Bit;
public int CultureLCID;
public string UpgradeCodeGuid;
public string ComponentGenerationSeedGuid;
public string ProgramFilesFolderName => Is64Bit
? "[ProgramFiles64Folder]"
: "[ProgramFilesFolder]";
public string AppId;
public string AppTitle;
public string AppTitleSanitized => MsiUtil.SanitizeDirectoryString(AppTitle);
public string AppPublisher;
public string AppPublisherSanitized => MsiUtil.SanitizeDirectoryString(AppPublisher);
public string AppMsiVersion;
public string StubFileName;
public string RuntimeDependencies;
public bool DesktopShortcut;
public bool StartMenuShortcut;
public bool InstallLocationEither => InstallForAllUsers && InstallForCurrentUser;
public bool InstallLocationAllUsersOnly => InstallForAllUsers && !InstallForCurrentUser;
public bool InstallLocationCurrentUserOnly => !InstallForAllUsers && InstallForCurrentUser;
public bool InstallForAllUsers;
public bool InstallForCurrentUser;
public bool HasIcon => !string.IsNullOrWhiteSpace(IconPath) && File.Exists(IconPath);
public string IconPath;
public bool HasLicense => !string.IsNullOrWhiteSpace(LicenseRtfFilePath);
public string LicenseRtfFilePath;
public bool HasConclusionMessage => !string.IsNullOrWhiteSpace(ConclusionMessage);
public string ConclusionMessage;
public bool HasWelcomeMessage => !string.IsNullOrWhiteSpace(WelcomeMessage);
public string WelcomeMessage;
public bool HasReadmeMessage => !string.IsNullOrWhiteSpace(ReadmeMessage);
public string ReadmeMessage;
public bool HasTopBannerImage => !string.IsNullOrWhiteSpace(TopBannerImagePath) && File.Exists(TopBannerImagePath);
public string TopBannerImagePath;
public bool HasSideBannerImage => !string.IsNullOrWhiteSpace(SideBannerImagePath) && File.Exists(SideBannerImagePath);
public string SideBannerImagePath;
public string WelcomeNextPage => HasLicense ? "LicenseAgreementDlg" : LicenseNextPage;
public string LicenseNextPage => InstallLocationEither ? "InstallScopeDlg" : "VerifyReadyDlg";
public string InstallScopePrevPage => HasLicense ? "LicenseAgreementDlg" : "WelcomeDlg";
public string VerifyReadyPrevPage => InstallLocationEither ? "InstallScopeDlg" : InstallScopePrevPage;
}