<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
xmlns:netfx='http://schemas.microsoft.com/wix/NetFxExtension'>
<Bundle Name="IPDev" Version="0.6" Manufacturer="MYAPP Corporation" UpgradeCode="f380ae43-5df1-4cfe-9297-526e3e638e57">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
<Chain>
<!-- TODO: Define the list of chained packages. -->
<PackageGroupRef Id="Netfx45FullPackage"/>
</Chain>
</Bundle>
<Fragment>
<!--checking for matlab 2012a installation-->
<util:RegistrySearch Id="MatlabPath"
Variable="UniqueId"
Root="HKLM"
Key="SOFTWARE\MathWorks\MATLAB\4.17\"
Result="exists"
Win64="yes"
/>
<!--checking for matlab MCR 2012a 64 bit installation-->
<util:RegistrySearch Id="MatlabMCRPath"
Variable="UniqueId"
Root="HKLM"
Key="SOFTWARE\MathWorks\MATLAB Compiler Runtime\7.17\"
Result="exists"
Win64="yes"
/>
<PackageGroup Id="Netfx45FullPackage">
<ExePackage Id="Netfx45Xxx" Cache="no" Compressed="no" PerMachine="yes" Permanent="yes" Vital="no" InstallCommand="/q"
SourceFile="..\SetupProject\dotnetfx45_full_x86_x64.exe"
DetectCondition="(Netfx4FullVersion="4.5.50709") AND (NOT VersionNT64 OR (Netfx4x64FullVersion="4.5.50709"))"
InstallCondition="(VersionNT >= v6.0 OR VersionNT64 >= v6.0) AND (NOT (Netfx4FullVersion="4.5.50709" OR Netfx4x64FullVersion="4.5.50709"))"/>
<ExePackage Id="MatlabMCR2012a64" Cache="no" Compressed="no" PerMachine="yes" Permanent="yes" Vital="no" InstallCommand="/q"
SourceFile="..\SetupProject\MCR_R2012a_win64_installer.exe"
InstallCondition="(NOT MatlabPath) OR (NOT MatlabMCRPath)"/>
<MsiPackage Id="IPDev" Cache="no" Compressed="no" DisplayInternalUI="yes" Vital="yes" SourceFile="..\SetupProject\bin\Release\IPDevSetup.msi"/>
</PackageGroup>
</Fragment>
</Wix>
đây là mã của tôi: Vấn đề của tôi là .NET4.5 chỉ được cài đặt nếu nó tồn tại.
tuy nhiên MCR của MATLAB được cài đặt cho dù nó có tồn tại hay không.
bạn có thể vui lòng cho tôi biết những gì xảy ra với tình trạng của tôi:trình cài đặt wix 3.7 bootstrapper Tìm kiếm đăng ký
InstallCondition="(NOT MatlabPath) AND (NOT MatlabMCRPath)"
sửa chữa sau khi câu trả lời của Rob:
DetectCondition="MatlabMCRPathExists OR MatlabPathExists"
điều kiện này phải là sai lầm để cài đặt
cảm ơn .i đã thay đổi thành DetectCondition nhưng nó bỏ qua việc cài đặt MatLab MCR. tôi đã gỡ cài đặt MCR và khởi động lại Máy tính của mình. đây là tệp nhật ký: "Điều kiện" (NOT MatlabPath) VÀ (NOT MatlabMCRPath) 'đánh giá là đúng ". và cũng "Gói phát hiện: MatlabMCR2012a64, trạng thái: Hiện tại, được lưu trong bộ nhớ cache: Không" điều này có nghĩa là sổ đăng ký vẫn còn ở đó? hoặc tôi có một lỗi trong mã của tôi? – Gilad
tôi đã thay đổi Điều kiện của tôi thành một OR và đây là những gì tôi nhận được Điều kiện 'MatlabMCRPathExists HOẶC MatlabPathExists' đánh giá sai. tuy nhiên MCR được cài đặt – Gilad
ok nvm nó giống như luôn luôn là một loại. cảm ơn nó đã được sửa! – Gilad