Another fix for WiX and dashes in the package id (#59)

This commit is contained in:
Caelan Sayler
2022-03-09 11:12:55 +00:00
parent 6dc824a188
commit e32ed80613

View File

@@ -381,10 +381,16 @@ namespace SquirrelCli
var setupExeDir = Path.GetDirectoryName(setupExe); var setupExeDir = Path.GetDirectoryName(setupExe);
var setupName = Path.GetFileNameWithoutExtension(setupExe); var setupName = Path.GetFileNameWithoutExtension(setupExe);
var culture = CultureInfo.GetCultureInfo(package.Language ?? "").TextInfo.ANSICodePage; var culture = CultureInfo.GetCultureInfo(package.Language ?? "").TextInfo.ANSICodePage;
var templateText = File.ReadAllText(HelperExe.WixTemplatePath); var templateText = File.ReadAllText(HelperExe.WixTemplatePath);
// WiX Identifiers may contain ASCII characters A-Z, a-z, digits, underscores (_), or
// periods(.). Every identifier must begin with either a letter or an underscore.
var wixId = Regex.Replace(package.Id, @"[^\w\.]", "_");
if (Char.GetUnicodeCategory(wixId[0]) == UnicodeCategory.DecimalDigitNumber)
wixId = "_" + wixId;
var templateData = new Dictionary<string, string> { var templateData = new Dictionary<string, string> {
{ "Id", package.Id }, { "Id", wixId },
{ "Title", package.ProductName }, { "Title", package.ProductName },
{ "Author", package.ProductCompany }, { "Author", package.ProductCompany },
{ "Version", package.Version.Version.ToString() }, { "Version", package.Version.Version.ToString() },