From 5dea510bbc2f270387a786c4e955efe469e466cd Mon Sep 17 00:00:00 2001 From: Aleksandr Neychev Date: Thu, 13 Aug 2026 17:13:51 +0500 Subject: [PATCH] fixed msi pipeline --- Packaging/Installer/CursorLang.wixproj | 25 +++++++++++++++++++------ README.RU.md | 25 ++++++++++++++++++------- README.md | 25 ++++++++++++++++++------- 3 files changed, 55 insertions(+), 20 deletions(-) diff --git a/Packaging/Installer/CursorLang.wixproj b/Packaging/Installer/CursorLang.wixproj index 3877049..fe65bf7 100644 --- a/Packaging/Installer/CursorLang.wixproj +++ b/Packaging/Installer/CursorLang.wixproj @@ -16,12 +16,25 @@ Package + true + + ICE38;ICE64;ICE91 diff --git a/README.RU.md b/README.RU.md index ddf543c..33765e5 100644 --- a/README.RU.md +++ b/README.RU.md @@ -333,10 +333,21 @@ pwsh -File Packaging\build-installer.ps1 -Version 1.0.1 снимет: SmartScreen смотрит на репутацию, а у нового сертификата её нет, пока приложение не наберёт установок. -Про проект WiX стоит знать две вещи, прежде чем его править. Он закреплён на WiX -5, а не на нынешней 7: начиная с шестой версии инструмент требует принимать -лицензию Open Source Maintenance Fee — бесплатную при доходе меньше $10 000 в -год, но принимать её должен человек, а не сборочный скрипт. И он отключает три -проверки ICE: MSI по-прежнему исходит из установки на всю машину, а установка в -профиль пользователя нарушает правила, которые описывают ровно то, что здесь и -задумано. +Про проект WiX стоит знать две вещи, прежде чем его править. + +Он закреплён на WiX 5, а не на нынешней 7: начиная с шестой версии инструмент +требует принимать лицензию Open Source Maintenance Fee — бесплатную при доходе +меньше $10 000 в год, но принимать её должен человек, а не сборочный скрипт. + +И он собирается без проверки MSI. Проверки ICE выполняются службой установщика +Windows, до которой сборочному агенту не дотянуться: каждая возвращается +ошибкой `WIX0217`, и сборка умирает на без малого сотне таких. На обычной +машине служба отвечает, и проверка включается одним ключом: + +```powershell +dotnet build Packaging\Installer\CursorLang.wixproj -p:SuppressValidation=false +``` + +Три правила остаются подавленными и тогда. MSI исходит из установки на всю +машину, а установка в профиль пользователя нарушает правила, которые описывают +ровно то, что здесь и задумано. diff --git a/README.md b/README.md index 9a34915..9ad357d 100644 --- a/README.md +++ b/README.md @@ -327,10 +327,21 @@ user has to insist. Buying a certificate would not silence it at once either: SmartScreen goes by reputation, and a fresh certificate has none until enough people have installed the application. -Two things about the WiX project are worth knowing before touching it. It pins -WiX 5 rather than the current 7: from version 6 the toolset asks every build to -accept the Open Source Maintenance Fee licence — free below $10,000 of yearly -revenue, but a decision for a person rather than for a build script. And it turns -off three ICE validation rules: MSI still assumes an installation for the whole -machine, and installing into the user's own profile trips rules that describe -exactly what was intended here. +Two things about the WiX project are worth knowing before touching it. + +It pins WiX 5 rather than the current 7: from version 6 the toolset asks every +build to accept the Open Source Maintenance Fee licence — free below $10,000 of +yearly revenue, but a decision for a person rather than for a build script. + +And it builds without MSI validation. The ICE checks run inside the Windows +Installer service, which a build agent cannot reach: every check comes back as +`WIX0217` and the build dies on close to a hundred of them. On an ordinary +desktop machine the service does answer, and validation is one switch away: + +```powershell +dotnet build Packaging\Installer\CursorLang.wixproj -p:SuppressValidation=false +``` + +Three of its rules stay suppressed even then. MSI assumes an installation for the +whole machine, and installing into the user's own profile trips rules that +describe exactly what was intended here.