Наш установщик генерирует загрузчик (setup.exe) и файл MSI - довольно распространенный сценарий.
Одна из производственных машин сообщает о странной проблеме во время установки:
Если пользователь запускает загрузчик (setup.exe), он сообщает, что .NET 3.5 не установлен . Это происходит с учетной записью в группе администраторов. Независимо от того, запускают ли они это как администратор или нет, такое же поведение.
приложение прекрасно устанавливается, когда application.msi
или OurInstallLauncher.exe
(пояснение см. Ниже) запускается напрямую, независимо от того, применяется ли администратор.
Мы проверили, что на компьютере установлен .NET (как 64-битные, так и 32-битные «версии» = под C:\Windows\Microsoft.NET\Framework64
и C:\Windows\Microsoft.NET\Framework
есть папка с именем v3.5
.
Это происходит на 64-битной Windows 7. Я не могу воспроизвести его на моей 64-битной Windows 7. На Windows XP и Vista, до сих пор он работал без проблем в течение длительного времени.
Часть нашего скрипта сборки, которая объявляет задачу GenerateBootStrapper (ничего особенного):
<ItemGroup>
<BootstrapperFile Include="Microsoft.Windows.Installer.3.1">
<ProductName>Microsoft Windows Installer 3.1</ProductName>
</BootstrapperFile>
<BootstrapperFile Include="Microsoft.Net.Framework.3.5">
<ProductName>Microsoft .NET Framework 3.5</ProductName>
</BootstrapperFile>
</ItemGroup>
<GenerateBootstrapper
ApplicationFile=".\Files\OurInstallLauncher.exe"
ApplicationName="App name"
Culture="en"
ComponentsLocation ="HomeSite"
CopyComponents="True"
Validate="True"
BootstrapperItems="@(BootstrapperFile)"
OutputPath="$(OutSubDir)"
Path="$(SdkBootstrapperPath)" />
Примечание: OurInstallLauncher.exe
- это селектор языка, который применяет преобразование к msi на основе выбора пользователя. Это вообще не относится к вопросу, потому что установщик никогда не заходит так далеко, как запуск этого exe!
РЕДАКТИРОВАТЬ: он показывает, что .NET 3.5 отсутствует сразу после запуска setup.exe и предлагает установить .NET 3.5. Когда пользователь соглашается с установкой, установщик .NET 3.5 говорит, что .NET 3.5 уже установлен, и установщик MSI продолжает работу. Если они решат не устанавливать .NET 3.5, установка заканчивается.
Кто-нибудь видел такое поведение раньше?