- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
几天来,我一直在与 Wix 自定义 Bootstrap 作斗争,试图让升级正常工作。 BA 升级代码保持不变,而 MSI 文件具有新的产品代码。我只在 ARP 中显示 BA,不显示 MSI。我已经知道它可以正确升级所有 MSI 文件,但是当它结束并打开旧包以卸载它时,它会打开并执行,但 ARP 中的条目仍然存在,所以现在我有两个。
这是完整的代码(减去一些 GUI 特定代码):
public class MainViewModel : ViewModelBase
{
public MainViewModel(BootstrapperApplication bootstrapper)
{
isInstall = true;
isUpgrade = false;
isOldBundle = false;
userHasCancelled = false;
encounteredError = false;
ExitEnabled = true;
installedArchitecture = "";
this.Bootstrapper = bootstrapper;
//Add listeners to all the events here
Command command = bootstrapper.Command;
if (command.Action == LaunchAction.Uninstall) {
isInstall = false;
if (command.Display == Display.Embedded) {
isOldBundle = true;
}
}
if (!isOldBundle) {
Messenger.Default.Register<SwitchViewMessage>(this, (switchViewMessage) =>
{
SwitchView(switchViewMessage.ViewName);
});
SwitchView("Install");
}
}
private bool install64Bit()
{
return optionsDataContext.SelectedArchitecture == 0;
}
private bool isInstall;
private bool isUpgrade;
private bool userHasCancelled;
private bool encounteredError;
public BootstrapperApplication Bootstrapper { get; private set; }
private void OptionsExecute()
{
SwitchView("Options");
}
private void InstallExecute()
{
if (FrameView == optionsView) {
//Ok pressed in Options View
optionsDataContext.StoreLastInstallLocation();
SwitchView("Install");
} else if (installDataContext.AcceptLicense) {
Bootstrapper.Engine.StringVariables["InstallFolder"] = optionsDataContext.InstallLocation;
Bootstrapper.Engine.Plan(LaunchAction.Install);
SwitchView("Progress");
} else {
TopMostMessageBox.Show("You must accept the License Agreement.", "Error");
}
}
private void UninstallExecute()
{
Bootstrapper.Engine.Plan(LaunchAction.Uninstall);
SwitchView("Progress");
}
private void ExitExecute()
{
if (FrameView == optionsView) {
//Cancel pressed in Options View
optionsDataContext.RestoreLastInstallLocation();
SwitchView("Install");
} else if (FrameView == progressView) {
//Cancel mid installation
userHasCancelled = true;
this.ExitEnabled = false;
SwitchView("Complete");
} else {
if (FrameView == completeView) {
if (!userHasCancelled && !encounteredError && isInstall && completeDataContext.LaunchApplication) {
string exePath = optionsDataContext.InstallLocation + "\\program\\flexsim.exe";
ProcessStartInfo exeFile = new ProcessStartInfo(exePath);
Process.Start(exeFile);
}
}
FlexSimBootstrapper.BootstrapperDispatcher.InvokeShutdown();
}
}
private void OnApplyComplete(object sender, ApplyCompleteEventArgs e)
{
OptionsEnabled = false;
InstallEnabled = false;
UninstallEnabled = false;
if (e.Status < 0) {
userHasCancelled = true;
SwitchView("Complete");
}
}
private string installedArchitecture;
private void OnDetectPackageComplete(object sender, DetectPackageCompleteEventArgs e)
{
if (isOldBundle) { //Don't do anything with packages, we're just uninstalling the bundle
return;
}
if (e.PackageId.StartsWith("FlexSim")) {
if (!isInstall) {
//If we're being upgraded, the packages were already upgraded
} else {
if (e.State == PackageState.Absent) {
if (installedArchitecture.Length > 0)
return;
OptionsEnabled = true;
isInstall = true;
this.InstallEnabled = true; //Update the InstallView
} else if (e.State == PackageState.Present) {
installedArchitecture = e.PackageId.Substring(e.PackageId.Length - 3, 3);
isInstall = false;
this.InstallEnabled = false; //Update the InstallView
UninstallEnabled = true;
}
}
} else {
string architecture = (install64Bit() ? "x64" : "x86");
if (installedArchitecture.Length > 0)
architecture = installedArchitecture;
if (isInstall) {
//If this is a bug fix release, check to see which modules are already installed and
//whether there are modules to be updated
if (e.PackageId == ("Conveyor_" + architecture)) {
if (e.State == PackageState.Present) {
installDataContext.ConveyorEnabled = false;
} else {
installDataContext.InstallConveyor = true;
}
} else if (e.PackageId == ("AGV_" + architecture)) {
if (e.State == PackageState.Present) {
installDataContext.AGVEnabled = false;
} else {
installDataContext.InstallAGV = true;
}
} else if (e.PackageId == ("AStar_" + architecture)) {
if (e.State == PackageState.Present) {
installDataContext.AStarEnabled = false;
} else {
installDataContext.InstallAStar = true;
}
}
} else {
//Check to see which modules were installed and only show those checkboxes
if (e.PackageId == ("Conveyor_" + architecture)) {
if (e.State == PackageState.Absent) {
installDataContext.ConveyorEnabled = false;
} else {
installDataContext.InstallConveyor = true;
}
} else if (e.PackageId == ("AGV_" + architecture)) {
if (e.State == PackageState.Absent) {
installDataContext.AGVEnabled = false;
} else {
installDataContext.InstallAGV = true;
}
} else if (e.PackageId == ("AStar_" + architecture)) {
if (e.State == PackageState.Absent) {
installDataContext.AStarEnabled = false;
} else {
installDataContext.InstallAStar = true;
}
}
}
}
}
private void OnPlanPackageBegin(object sender, PlanPackageBeginEventArgs e)
{
if (isOldBundle) { //Don't do anything with packages, we're just uninstalling the bundle
return;
}
string architecture = install64Bit() ? "x64" : "x86";
if (e.PackageId.StartsWith("Conveyor")) {
bool installConveyor = installDataContext.InstallConveyor && installDataContext.ConveyorEnabled && e.PackageId.EndsWith(architecture);
e.State = installConveyor ? (isInstall ? RequestState.Present : RequestState.Absent) : RequestState.None;
} else if (e.PackageId.StartsWith("AGV")) {
bool installAGV = installDataContext.InstallAGV && installDataContext.AGVEnabled && e.PackageId.EndsWith(architecture);
e.State = installAGV ? (isInstall ? RequestState.Present : RequestState.Absent) : RequestState.None;
} else if (e.PackageId.StartsWith("AStar")) {
bool installAStar = installDataContext.InstallAStar && installDataContext.AStarEnabled && e.PackageId.EndsWith(architecture);
e.State = installAStar ? (isInstall ? RequestState.Present : RequestState.Absent) : RequestState.None;
} else if (e.PackageId.StartsWith("FlexSim")) {
e.State = e.PackageId.EndsWith(architecture) ? (isInstall ? RequestState.Present : RequestState.Absent) : RequestState.None;
}
}
private void OnPlanComplete(object sender, PlanCompleteEventArgs e)
{
if (e.Status >= 0)
Bootstrapper.Engine.Apply(System.IntPtr.Zero);
}
private void OnExecuteMsiMessage(object sender, ExecuteMsiMessageEventArgs e)
{
if (e.MessageType == InstallMessage.ActionStart) {
string text = e.Message.Split(' ')[2];
text = text.TrimEnd('.');
//Turn the camel case text into a more readable format
var r = new Regex(@"
(?<=[A-Z])(?=[A-Z][a-z]) |
(?<=[^A-Z])(?=[A-Z]) |
(?<=[A-Za-z])(?=[^A-Za-z])", RegexOptions.IgnorePatternWhitespace);
progressDataContext.ProgressText = r.Replace(text, " ");
}
}
private void OnProgress(object sender, ProgressEventArgs e)
{
progressDataContext.ProgressPercent = e.OverallPercentage;
// handle user cancellations here
if (userHasCancelled)
e.Result = Result.Cancel;
}
private void OnExecuteProgress(object sender, ExecuteProgressEventArgs e)
{
progressDataContext.ProgressPercent = e.ProgressPercentage;
if (userHasCancelled)
e.Result = Result.Cancel;
}
private void OnCacheAcquireProgress(object sender, CacheAcquireProgressEventArgs e)
{
progressDataContext.ProgressPercent = e.OverallPercentage;
string packageName = e.PackageOrContainerId.Substring(0, e.PackageOrContainerId.Length - 4); //Remove architecture
progressDataContext.ProgressText = "Downloading " + packageName + (packageName == "FlexSim" ? "" : "Module");
if (userHasCancelled)
e.Result = Result.Cancel;
}
private void OnCacheAcquireBegin(object sender, CacheAcquireBeginEventArgs e)
{
progressDataContext.ProgressPercent = 0;
string packageName = e.PackageOrContainerId.Substring(0, e.PackageOrContainerId.Length - 4); //Remove architecture
progressDataContext.ProgressText = "Beginning download of " + packageName + (packageName == "FlexSim" ? "" : "Module");
}
private void OnCacheAcquireComplete(object sender, CacheAcquireCompleteEventArgs e)
{
progressDataContext.ProgressPercent = 100;
string packageName = e.PackageOrContainerId.Substring(0, e.PackageOrContainerId.Length - 4); //Remove architecture
progressDataContext.ProgressText = "Download of " + packageName + (packageName == "FlexSim" ? "" : "Module") + " Complete";
}
private void OnCacheComplete(object sender, CacheCompleteEventArgs e)
{
progressDataContext.ProgressPercent = 100;
progressDataContext.PackageName = "Download Complete";
progressDataContext.ProgressText = "";
}
private void OnError(object sender, ErrorEventArgs e)
{
string packageName = e.PackageId.Substring(0, e.PackageId.Length - 4); //Remove architecture
if (e.PackageId == "Netfx4Full")
packageName = ".NET 4.0";
TopMostMessageBox.Show(e.ErrorMessage, "Error " + (isUpgrade ? "Upgrading" : (isInstall ? "Installing" : "Uninstalling")) + " " + packageName);
if (packageName == "FlexSim" || packageName == ".NET 4.0")
encounteredError = true; //Rollback
}
private void OnExecuteFilesInUse(object sender, ExecuteFilesInUseEventArgs e)
{
string packageName = e.PackageId.Substring(0, e.PackageId.Length - 4); //Remove architecture
if (e.PackageId == "Netfx4Full")
packageName = ".NET 4.0";
DialogResult result = TopMostMessageBox.Show("Unable to continue installation, files are in use. Please close FlexSim before continuing.", "Error " + (isInstall ? "Installing" : "Uninstalling") + " " + packageName, MessageBoxButtons.RetryCancel);
if (result == DialogResult.Cancel)
encounteredError = true; //Rollback
}
private void OnExecutePackageBegin(object sender, ExecutePackageBeginEventArgs e)
{
progressDataContext.ProgressPercent = 0;
string packageName = e.PackageId.Substring(0, e.PackageId.Length - 4); //Remove architecture
Guid relatedBundle;
if (Guid.TryParse(e.PackageId.Substring(1, e.PackageId.Length - 2), out relatedBundle)) {
progressDataContext.PackageName = "Cleaning Up...";
progressDataContext.ProgressText = "";
} else {
progressDataContext.PackageName = (isUpgrade ? "Upgrading" : (isInstall ? "Installing" : "Uninstalling")) + " " + packageName + "...";
progressDataContext.ProgressText = "Opening package";
}
}
private void OnExecutePackageComplete(object sender, ExecutePackageCompleteEventArgs e)
{
progressDataContext.ProgressPercent = 100;
}
private void OnExecuteComplete(object sender, ExecuteCompleteEventArgs e)
{
if (isUpgrade && !isInstall) {
//Uninstalling the old bootstrapper
Bootstrapper.Engine.Quit(0);
Environment.Exit(0);
return;
}
SwitchView("Complete");
}
private void OnResolveSource(object sender, ResolveSourceEventArgs e)
{
string architecture = install64Bit() ? "x64" : "x86";
if (!string.IsNullOrEmpty(e.DownloadSource) && e.PackageOrContainerId.EndsWith(architecture))
{
e.Result = Result.Download;
progressDataContext.PackageName = "Please wait, downloading installation files...";
progressDataContext.ProgressText = "Contacting server";
}
}
private void OnDetectRelatedBundle(object sender, DetectRelatedBundleEventArgs e)
{
if (e.Version.ToString() == "7.5.0.0") {
TopMostMessageBox.Show("Please uninstall FlexSim 7.5.0 before running this installer.", "Error");
Environment.Exit(0);
} else {
isUpgrade = true;
if (Bootstrapper.Command.Display == Display.Embedded) {
//This bootstrapper is being run after FlexSim was upgraded in order to remove it from the ARP
Bootstrapper.Engine.Plan(LaunchAction.Uninstall);
} else {
installDataContext.IsUpgrade = true;
this.AppName = getFullProductName() + " Upgrade";
this.InstallName = "Upgrade";
}
}
}
这是升级包的日志:
Burn v3.9.1006.0, Windows v6.2 (Build 9200: Service Pack 0), path: \\hulk\Temp\Matt Long\FlexSim7.5.4\FlexSimInstaller.exe, cmdline: ''
Setting string variable 'WixBundleLog' to value 'C:\Users\DEVELO~1\AppData\Local\Temp\FlexSim_7.5.4_20150303100732.log'
Setting string variable 'WixBundleOriginalSource' to value '\\hulk\Temp\Matt Long\FlexSim7.5.4\FlexSimInstaller.exe'
Setting string variable 'WixBundleOriginalSourceFolder' to value '\\hulk\Temp\Matt Long\FlexSim7.5.4\'
Setting string variable 'WixBundleName' to value 'FlexSim 7.5.4'
Loading managed bootstrapper application.
Creating BA thread to run asynchronously.
Launching FlexSimBootstrapper UX
Detect begin, 9 packages
Setting string variable 'Netfx4x64FullVersion' to value '4.5.50709'
Setting string variable 'Netfx4FullVersion' to value '4.5.50709'
Detected related bundle: {c2bb38d9-e545-4dee-a6e6-2e483f088a7a}, type: Upgrade, scope: PerMachine, version: 7.5.2.0, operation: MajorUpgrade
Condition 'Netfx4FullVersion AND (NOT VersionNT64 OR Netfx4x64FullVersion)' evaluates to true.
Detected related package: {65565599-386F-4A2A-B63E-88A873AE8AB8}, scope: PerMachine, version: 7.5.2.0, language: 0 operation: MajorUpgrade
Detected related package: {65565599-386F-4A2A-B63E-88A873AE8AB8}, scope: PerMachine, version: 7.5.2.0, language: 0 operation: MajorUpgrade
Detected related package: {65565599-386F-4A2A-B63E-88A873AE8AB8}, scope: PerMachine, version: 7.5.2.0, language: 0 operation: MajorUpgrade
Detected related package: {65565599-386F-4A2A-B63E-88A873AE8AB8}, scope: PerMachine, version: 7.5.2.0, language: 0 operation: MajorUpgrade
Detected package: Netfx4Full, state: Present, cached: None
Detected package: FlexSim_x86, state: Absent, cached: None
Detected package: FlexSim_x64, state: Absent, cached: None
Detected package: Conveyor_x86, state: Absent, cached: None
Detected package: AGV_x86, state: Absent, cached: None
Detected package: AStar_x86, state: Absent, cached: None
Detected package: Conveyor_x64, state: Absent, cached: None
Detected package: AGV_x64, state: Absent, cached: None
Detected package: AStar_x64, state: Absent, cached: None
Detect complete, result: 0x0
Setting string variable 'InstallFolder' to value 'C:\Program Files\FlexSim7.5'
Plan begin, 9 packages, action: Install
Condition '(VersionNT < v6.0 OR VersionNT64 < v6.0) AND (NOT (Net4FullVersion OR Net4x64FullVersion))' evaluates to false.
Skipping dependency registration on package with no dependency providers: Netfx4Full
Setting string variable 'WixBundleRollbackLog_FlexSim_x64' to value 'C:\Users\DEVELO~1\AppData\Local\Temp\FlexSim_7.5.4_20150303100732_0_FlexSim_x64_rollback.log'
Setting string variable 'WixBundleLog_FlexSim_x64' to value 'C:\Users\DEVELO~1\AppData\Local\Temp\FlexSim_7.5.4_20150303100732_0_FlexSim_x64.log'
Condition 'NOT Installed' evaluates to true.
Condition 'NOT Installed' evaluates to true.
Condition 'NOT Installed' evaluates to true.
Condition 'NOT Installed' evaluates to true.
Condition 'NOT Installed' evaluates to true.
Condition 'NOT Installed' evaluates to true.
Planned package: Netfx4Full, state: Present, default requested: Absent, ba requested: Absent, execute: None, rollback: None, cache: No, uncache: No, dependency: None
Planned package: FlexSim_x86, state: Absent, default requested: Present, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
Planned package: FlexSim_x64, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: Yes, uncache: No, dependency: Register
Planned package: Conveyor_x86, state: Absent, default requested: Present, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
Planned package: AGV_x86, state: Absent, default requested: Present, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
Planned package: AStar_x86, state: Absent, default requested: Present, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
Planned package: Conveyor_x64, state: Absent, default requested: Present, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
Planned package: AGV_x64, state: Absent, default requested: Present, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
Planned package: AStar_x64, state: Absent, default requested: Present, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
Planned related bundle: {c2bb38d9-e545-4dee-a6e6-2e483f088a7a}, type: Upgrade, default requested: Absent, ba requested: Absent, execute: Uninstall, rollback: Install, dependency: None
Plan complete, result: 0x0
Apply begin
Creating a system restore point.
Created a system restore point.
Caching bundle from: 'C:\Users\DEVELO~1\AppData\Local\Temp\{67225db2-d963-4067-ba1b-f42a8f1f6dcb}\.be\FlexSimInstaller.exe' to: 'C:\ProgramData\Package Cache\{67225db2-d963-4067-ba1b-f42a8f1f6dcb}\FlexSimInstaller.exe'
Registering bundle dependency provider: {67225db2-d963-4067-ba1b-f42a8f1f6dcb}, version: 7.5.4.0
Acquiring package: FlexSim_x64, payload: FlexSim_x64, copy from: \\hulk\Temp\Matt Long\FlexSim7.5.4\flexsim__7.5.4._x64
Setting string variable 'WixBundleLastUsedSource' to value '\\hulk\Temp\Matt Long\FlexSim7.5.4\'
Verified acquired payload: FlexSim_x64 at path: C:\ProgramData\Package Cache\.unverified\FlexSim_x64, moving to: C:\ProgramData\Package Cache\{DE2D8A1C-DD4A-411C-A23B-A9C0943AFC84}v7.5.4\flexsim__7.5.4._x64.
Registering package dependency provider: {DE2D8A1C-DD4A-411C-A23B-A9C0943AFC84}, version: 7.5.4, package: FlexSim_x64
Applying execute package: FlexSim_x64, action: Install, path: C:\ProgramData\Package Cache\{DE2D8A1C-DD4A-411C-A23B-A9C0943AFC84}v7.5.4\flexsim__7.5.4._x64, arguments: ' ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7" INSTALLDIR="C:\Program Files\FlexSim7.5"'
Applied execute package: FlexSim_x64, result: 0x0, restart: None
Registering dependency: {67225db2-d963-4067-ba1b-f42a8f1f6dcb} on package provider: {DE2D8A1C-DD4A-411C-A23B-A9C0943AFC84}, package: FlexSim_x64
Applying execute package: {c2bb38d9-e545-4dee-a6e6-2e483f088a7a}, action: Uninstall, path: C:\ProgramData\Package Cache\{c2bb38d9-e545-4dee-a6e6-2e483f088a7a}\FlexSimInstaller.exe, arguments: '"C:\ProgramData\Package Cache\{c2bb38d9-e545-4dee-a6e6-2e483f088a7a}\FlexSimInstaller.exe" -uninstall -quiet -burn.related.upgrade -burn.ancestors={67225db2-d963-4067-ba1b-f42a8f1f6dcb}'
Applied execute package: {c2bb38d9-e545-4dee-a6e6-2e483f088a7a}, result: 0x0, restart: None
Apply complete, result: 0x0, restart: None, ba requested restart: No
Shutting down, exit code: 0x0
Variable: InstallFolder = C:\Program Files\FlexSim7.5
Netfx4FullVersion = 4.5.50709
Netfx4x64FullVersion = 4.5.50709
VersionNT = 6.2.0.0
VersionNT64 = 6.2.0.0
Variable:WixBundleAction = 4
Variable: WixBundleElevated = 1
Variable: WixBundleLastUsedSource = \\hulk\Temp\Matt Long\FlexSim7.5.4\
Variable: WixBundleLog = C:\Users\DEVELO~1\AppData\Local\Temp\FlexSim_7.5.4_20150303100732.log
Variable: WixBundleLog_FlexSim_x64 = C:\Users\DEVELO~1\AppData\Local\Temp\FlexSim_7.5.4_20150303100732_0_FlexSim_x64.log
Variable: WixBundleManufacturer = FlexSim Software Products, Inc.
Variable: WixBundleName = FlexSim 7.5.4
Variable: WixBundleOriginalSource = \\hulk\Temp\Matt Long\FlexSim7.5.4\FlexSimInstaller.exe
Variable: WixBundleOriginalSourceFolder = \\hulk\Temp\Matt Long\FlexSim7.5.4\
Variable: WixBundleProviderKey = {67225db2-d963-4067-ba1b-f42a8f1f6dcb}
Variable: WixBundleRollbackLog_FlexSim_x64 = C:\Users\DEVELO~1\AppData\Local\Temp\FlexSim_7.5.4_20150303100732_0_FlexSim_x64_rollback.log
Variable: WixBundleTag = FlexSim
Variable: WixBundleVersion = 7.5.4.0
Exit code: 0x0, restarting: No
卸载旧包:
Burn v3.9.1006.0, Windows v6.2 (Build 9200: Service Pack 0), path: C:\ProgramData\Package Cache\{c2bb38d9-e545-4dee-a6e6-2e483f088a7a}\FlexSimInstaller.exe, cmdline: '-burn.unelevated BurnPipe.{75719B82-36F8-4EEC-9627-95F9C80EFD3D} {C5DDF0F8-2C71-4784-918C-123444FEB511} 3048 -uninstall -quiet -burn.related.upgrade -burn.ancestors={67225db2-d963-4067-ba1b-f42a8f1f6dcb} -burn.embedded BurnPipe.{FD72859F-485B-49ED-955A-3BE174642F7C} {7C01F82A-C3C3-42F9-AF31-0E9995FB9E61} 4480'
This bundle is being run by a related bundle as type 'Upgrade'.
Setting string variable 'WixBundleLog' to value 'C:\Users\DEVELO~1\AppData\Local\Temp\FlexSim_7.5.2_20150303100853.log'
Loading managed bootstrapper application.
Creating BA thread to run asynchronously.
Launching FlexSimBootstrapper UX
Detect begin, 9 packages
Setting string variable 'Netfx4x64FullVersion' to value '4.5.50709'
Setting string variable 'Netfx4FullVersion' to value '4.5.50709'
Detected related bundle: {67225db2-d963-4067-ba1b-f42a8f1f6dcb}, type: Upgrade, scope: PerMachine, version: 7.5.4.0, operation: None
Condition 'Netfx4FullVersion AND (NOT VersionNT64 OR Netfx4x64FullVersion)' evaluates to true.
Detected partially cached package: FlexSim_x86, invalid payload: FlexSim_x86, reason: 0x80070002
Detected related package: {DE2D8A1C-DD4A-411C-A23B-A9C0943AFC84}, scope: PerMachine, version: 7.5.4.0, language: 0 operation: Downgrade
Detected related package: {DE2D8A1C-DD4A-411C-A23B-A9C0943AFC84}, scope: PerMachine, version: 7.5.4.0, language: 0 operation: Downgrade
Detected package: Netfx4Full, state: Present, cached: None
Detected package: FlexSim_x86, state: Obsolete, cached: Partial
Detected package: FlexSim_x64, state: Obsolete, cached: Complete
Detected package: Conveyor_x86, state: Absent, cached: None
Detected package: AGV_x86, state: Absent, cached: None
Detected package: AStar_x86, state: Absent, cached: None
Detected package: Conveyor_x64, state: Absent, cached: None
Detected package: AGV_x64, state: Absent, cached: None
Detected package: AStar_x64, state: Absent, cached: None
Detect complete, result: 0x0
Plan begin, 9 packages, action: Uninstall
Plan skipped related bundle: {67225db2-d963-4067-ba1b-f42a8f1f6dcb}, type: Upgrade, because it was previously scheduled.
Skipping dependency registration on package with no dependency providers: Netfx4Full
Planned related bundle: {67225db2-d963-4067-ba1b-f42a8f1f6dcb}, type: Upgrade, default requested: None, ba requested: None, execute: None, rollback: None, dependency: None
Planned package: AStar_x64, state: Absent, default requested: Absent, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: Unregister
Planned package: AGV_x64, state: Absent, default requested: Absent, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: Unregister
Planned package: Conveyor_x64, state: Absent, default requested: Absent, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: Unregister
Planned package: AStar_x86, state: Absent, default requested: Absent, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: Unregister
Planned package: AGV_x86, state: Absent, default requested: Absent, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: Unregister
Planned package: Conveyor_x86, state: Absent, default requested: Absent, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: Unregister
Planned package: FlexSim_x64, state: Obsolete, default requested: None, ba requested: Absent, execute: None, rollback: None, cache: No, uncache: Yes, dependency: Unregister
Planned package: FlexSim_x86, state: Obsolete, default requested: None, ba requested: None, execute: None, rollback: None, cache: No, uncache: Yes, dependency: Unregister
Planned package: Netfx4Full, state: Present, default requested: None, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
Plan complete, result: 0x0
Apply begin
Removed package dependency provider: {124DDD12-0BD0-464E-B753-4BC53D27770A}, package: AStar_x64
Removed package dependency provider: {E48B3FBD-001F-4D1F-876B-B041044B6B87}, package: AGV_x64
Removed package dependency provider: {65E44AB7-FBC5-480A-92B5-519CF57F6CDD}, package: Conveyor_x64
Removed package dependency provider: {124DDD12-0BD0-464E-B753-4BC53D27770A}, package: AStar_x86
Removed package dependency provider: {E48B3FBD-001F-4D1F-876B-B041044B6B87}, package: AGV_x86
Removed package dependency provider: {65E44AB7-FBC5-480A-92B5-519CF57F6CDD}, package: Conveyor_x86
Removed dependency: {c2bb38d9-e545-4dee-a6e6-2e483f088a7a} on package provider: {65565599-386F-4A2A-B63E-88A873AE8AB8}, package FlexSim_x64
最佳答案
我终于明白了!正如所怀疑的那样,它是一些小东西。这完全取决于时机。
第一个问题是我需要在 DetectComplete 操作中执行计划卸载:
private void OnDetectComplete(object sender, DetectCompleteEventArgs e)
{
if (Bootstrapper.Command.Action == LaunchAction.Uninstall && Bootstrapper.Command.Display == Display.Embedded)
{
Bootstrapper.Engine.Plan(LaunchAction.Uninstall);
}
}
那么卸载旧包的日志被缩短的原因是我过早退出了应用程序。我将其移至 ApplyComplete 操作:
private void OnApplyComplete(object sender, ApplyCompleteEventArgs e)
{
if (Bootstrapper.Command.Action == LaunchAction.Uninstall && Bootstrapper.Command.Display == Display.Embedded) {
//Uninstalling the old bootstrapper
Bootstrapper.Engine.Quit(0);
Environment.Exit(0);
}
}
关于Wix Custom BA 妥善处理升级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28819176/
我几乎不敢在这里问这个问题,因为它似乎应该很容易通过谷歌或 ravendb.net 获得。但是,我一直很难找到将我的 RavenDB 升级到新版本的正确方法。我目前正在运行 573 版并希望升级到 6
这周我需要升级当前版本的 DNN。我目前使用的是 2.1.1。我不想每件事都做两次,所以,我有几个问题。 是否有升级工具或某些脚本可以帮助我进行升级。 我最好安装 4.9 还是 5.0。这是生产。 如
将 Sugarcrm 从 6.2 升级到 6.3 版本时遇到问题。当我升级本地 Sugarcrm 安装时,它可以工作,但是当我开始升级我的 Sugarcrm 6.2 站点并上传升级包时,它不会上传。
有没有办法绕过 Meteor 的自动更新功能?我坚持 Downloading meteor-tool@1.3.0_3... \ 当我尝试运行现有项目,或创建一个新项目或只是运行“
我已将应用内集成到我的 Andorid 应用程序中,用于单个产品 productone。 为此,我在我的 Google Play 控制台中创建了不同的产品 ID,如下所示: 1。 productone
我在将 TeamCity 版本 2017.1.1 升级到 2017.1.2 时遇到问题。这个问题涉及 TeamCity 和 PostgreSQL 的工作。我的工作: 停止 teamcity 进程 /e
我寻找了这个问题的具体答案,但找不到——即使是在 WAMPSERVER 网站上也是如此。我确定我忽略了它。 我有 Wampserver 2.0、MySQL 5.0.51b、PHP 5.2.6 和 Ap
我使用 Ubuntu 软件中心默认的 Eclipse 3.7。 我想将 Eclipse 升级到 kepler 版本,所以我添加了 repository 我收到以下错误消息: Cannot comple
你好 我只想安装 mercurial,但对于它需要 python 2.6 的所有版本,我尝试使用 .rpm 文件,但我唯一得到的是很多充满错误的行,它告诉我:需要安装在 2.6 之前和 2.5 之后的
我完全知道 Gradle 网站上有一些页面说明了如何升级,但仅限于 4.x 及更高版本。 我正在尝试关注 tutorial制作一个简单的“我的第一个”Minecraft 模组。在其中,您被告知安装 f
我们想升级 Kerberos(服务器和客户端) 当前:1.6.3-133.27.1 目标:1.6.3-133.49.97.1 问题是如果我们用包管理器升级它,下面会发生什么? KDC 数据库 所有主要
背景 原计划 2019 年发布的 Vue3,又经过一年的再次打磨,终于于去年 9 月正式发布。随后,不少 UI 组件库都积极参与适配,去年 12 月,Element-plus(
我有一个版本为 2.3.4 的 grails 项目,我需要尽可能升级到最新版本。查看文档我意识到从 2.x 到 3.x 有巨大的变化。 问题是:从 2 到 3、从 3 到 4、从 4 到 5 逐步升级
我正在将 API 项目从 .net5 升级到 .net6 它以前工作,现在它崩溃 内部异常消息“抛出了‘Unity.Exceptions.InvalidRegistrationException’类型
我将我的项目从 expo 44 升级到 expo 45,现在我有无数这样的错误: The module 'MaterialIcons' can't be used as JSX component.
我已经升级了掌 Helm 模板(手动) 以前的片段depoloyment.yaml : apiVersion: apps/v1beta2 kind: Deployment metadata: na
我正在尝试将我的 Scala Play Framework 应用程序升级到 2.8,这涉及将 SBT 升级到 1.x。 在我的 build.propeties 我有 sbt.version=1.3.5
我想在我的 Windows 服务器上安装 PHPUnit 3.7。我遵循了各种说明 here并以 PHPUnit 3.4.1 结束。当我尝试使用以下方法再次安装它时: pear update chan
Microsoft.Net 4.5 即将推出,我想在 MS 发布最终版本时升级我的 clickonce 应用程序。 我的问题是:已经安装了 clickonce 应用程序(使用 .net 4.0)的用户
为了将 Angular 8 更新到 9,我正在按照官方文档升级。 这建议首先更新到最新版本的 angular 8,例如: ng update @angular/core@8 @angular/cli@
我是一名优秀的程序员,十分优秀!