Vista(및 그 이상) 시스템에 대한 .NET 3.5 설치를 간소화하는 데 필요한 WiX 변경 사항
-
05-07-2019 - |
문제
우리는 과감히 미디어 센터 플러그인을 사용하기 전에 사용자가 .NET 3.5를 설치하도록 요구하기로 결정했습니다.
저는 설치 경험이 최대한 원활하고 설치 프로그램의 규모가 작은지 확인하고 싶습니다.
내 계정에 어떤 변경이 필요합니까? WiX 파일 다음 시나리오를 지원하려면?코드 예제를 주시면 감사하겠습니다.
- 사용자에게 .Net Framework 3.0이 설치되어 있고 대화형으로 설치되어 있습니다.
원하는 동작:사용자에게 새 버전의 프레임워크가 필요하다는 메시지가 표시되고, 동의하면 dotNetFx35setup.exe(2.7MB)가 다운로드된 후 실행됩니다.드디어 설치가 진행됩니다.
- 사용자가 .Net Framework 3.0을 비대화형으로 설치했습니다.
배경:사용자가 기존 버전을 업그레이드하기로 선택한 경우 미디어 센터 내에서 자동 업데이트를 용이하게 하기 위해 "msiexec.exe /qb /i mediabrowser.msi"를 실행할 수 있습니다.
원하는 동작:사용자에게 새 버전의 프레임워크가 필요하다는 메시지가 표시되고, 동의하면 dotNetFx35setup.exe(2.7MB)가 다운로드된 후 실행됩니다.마지막으로 설치가 자동으로 진행됩니다.
이러한 라인을 따라 무언가를 구현하는 다른 오픈 소스 프로젝트가 있습니까?
관련 질문:~이다 .NET 3.5는 미디어 센터 플러그인에 대한 합리적인 전제 조건입니까?
해결책 4
에서 Rob Mensching Lead Wix Developer : 이것은 Burn의 주요 시나리오입니다.
따라서 아니요, Wix Pure로 프로세스를 줄이기위한 내장은 없습니다. 당신은 당신의 쓸 수 있습니다 자신의 부트 스트랩퍼 그렇지만.
다른 팁
MSI가 시작되기 전에 .NET을 설치하는 것이 Setup.exe Bootstrapper의 책임에 속한다고 생각합니다. Wix는 (아직) 부트 스트랩퍼를 생성하는 고유 한 방법이 없습니다 (또는 그렇다면 Wix.chm에 문서화되어 있지 않음). 대신 generatebootstrapper msbuild 작업을 사용하여 setup.exe를 생성 할 수 있습니다. 주제를 살펴보세요 "방법 : 부트 스트랩퍼를 사용하여 .NET 프레임 워크 설치"Wix 문서에서. 다운로드하여 .NET 3.5 SP1을 설치하려면 MSBuild 파일이 다음과 같습니다.
<Project ToolsVersion="3.5"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<BootstrapperFile Include="Microsoft.Windows.Installer.3.1" >
<ProductName>Windows Installer 3.1</ProductName>
</BootstrapperFile>
<BootstrapperFile Include="Microsoft.Net.Framework.3.5.SP1" >
<ProductName>Microsoft DotNet Framework 3.5 SP1</ProductName>
</BootstrapperFile>
</ItemGroup>
<Target Name="SetupExe">
<GenerateBootstrapper
ApplicationFile="myproduct.msi"
ApplicationName="myproduct"
BootstrapperItems="@(BootstrapperFile)"
Path="C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\"
OutputPath="path/to/put/setup/"
Culture="en"/>
</Target>
</Project>
위의 내용을 setup.msbuild 파일에 저장하면 호출하여 설정을 빌드 할 수 있습니다.
C : Windows Microsoft.net Framework V3.5 MSBuild.exe Setup.msbuild
다운로드하지 않고 설치 CD에서 .NET을 설치할 수도 있습니다. 그냥 추가하십시오 ComponentsLocation="Relative"
GenerateBootstrapper의 속성에.
dotnetinstaller 이 모든 것을 뒷받침합니다
이를 수행하려면 부트스트래퍼를 사용해야 합니다.Microsoft Installer에서는 이미 실행 중인 다른 설치 프로그램을 시작하는 것을 허용하지 않습니다.Visual Studio에 포함된 msbuild 파일에서 사용할 수 있는 부트스트랩 생성기가 있거나 다양한 오픈 소스 옵션을 살펴볼 수 있습니다.
dotNet설치 프로그램 인기있는 옵션입니다.그리고 "Burn"은 이 작업을 위해 WiX에서 곧 출시될 도구의 이름입니다.그러나 현재로서는 여전히 컨셉웨어입니다.