Nano Hash - криптовалюты, майнинг, программирование

Запретить Burn удалять пакет .NET

Я использую загрузчик WiX для установки .NET и моего приложения. Установка .NET указывается в цепочке с помощью инструкции

<PackageGroupRef Id="NetFx40Redist">

Когда я удаляю с помощью загрузчика, пакет .NET также удаляется. Как я могу изменить приведенное выше утверждение, чтобы указать загрузчику не удалять пакет .NET?

РЕДАКТИРОВАТЬ: Ниже приведен код, который я написал для этого. Комментарии приветствуются, если есть что-то, что я должен сделать по-другому.

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">

    <Bundle Name="appName" Version="$(var.Version)" Manufacturer="mfr" UpgradeCode="your-GUID"

    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
        <Variable Name="InstallFolder" Type="string" Value="[ProgramFilesFolder]mfrName\appName" />

        <Chain>
            <PackageGroupRef Id="Net4Redist"/>

            <MsiPackage
                    Id="MsiInstaller"
                    Compressed="yes"
                    SourceFile="$(var.SolutionDir)\appName_Installer\bin\$(var.Configuration)\appName_Installer.msi"
                    Permanent="no"
                    Vital="yes">
                <MsiProperty Name="INSTALLLOCATION" Value="[InstallFolder]" />
            </MsiPackage>
        </Chain>
    </Bundle>

    <Fragment>
        <PackageGroup Id="Net4Redist">
            <ExePackage Id="Netfx40Xxx" Cache="no" Compressed="yes" PerMachine="yes"
                 Permanent="yes" Vital="yes" InstallCommand="/q"
                 SourceFile="$(var.SolutionDir)\Bootstrapper\redist\dotNetFx40_Full_x86_x64.exe"
                 InstallCondition="(VersionNT >= v6.0 OR VersionNT64 >= v6.0)"/>
        </PackageGroup>
    </Fragment> 
</Wix>
18.09.2013

Ответы:


1

Вы пытались использовать атрибут «Постоянный» в элементе EXEPackage?

EXEPackage

18.09.2013
  • Спасибо за руководство. Я отредактировал свой вопрос, чтобы показать, как я создал ExePackage. Это правильный способ сделать это? 20.09.2013
  • Я не вижу изменений в вопросе. 20.09.2013
  • Извините, я должен был сначала внести изменения. Они там сейчас. 20.09.2013
  • Выглядит хорошо для меня, можете ли вы запустить это и протестировать описанный выше сценарий? 20.09.2013
  • Да, он больше не удаляет .NET. Каждый раз, когда я запускаю установщик, он тратит кучу времени на установщик .NET, как будто каждый раз устанавливает .NET, хотя он уже установлен. Не уверен, почему это происходит. Но мой первоначальный вопрос решен. 21.09.2013
  • Проверьте файл журнала и посмотрите, что именно происходит. 24.09.2013

  • 2

    Рад, что вы решили свою проблему, но, как вы упомянули, у вас нет настройки условия обнаружения, поэтому, вероятно, вы видите обработку .NET каждый раз, когда запускаете установщик. Если вы добавите в свой пример следующее условие поиска и обнаружения в реестре, вы больше этого не увидите:

    <Fragment>
        <util:RegistrySearchRef Id="NETFRAMEWORK40"/>
    
        <PackageGroup Id="Net4Redist">
            <ExePackage Id="Netfx40Xxx" Cache="no" Compressed="yes" PerMachine="yes"
                 Permanent="yes" Vital="yes" InstallCommand="/q"
                 SourceFile="$(var.SolutionDir)\Bootstrapper\redist\dotNetFx40_Full_x86_x64.exe"
                 DetectCondition="NETFRAMEWORK40"
                 InstallCondition="(VersionNT >= v6.0 OR VersionNT64 >= v6.0)"/>
        </PackageGroup>
    </Fragment> 
    
    07.01.2014
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..