标签: burn

VS2012和Wix 3.6 - 使用我的应用程序安装.Net 4.5

我对安装人员世界很新.

我已成功为我的应用程序创建了一个.msi,它正在使用快捷方式构建并正确卸载.

我的下一个目标是使用安装程序打包.Net 4.5并在安装我的应用程序之前安装它.

我还有一个需要安装的第三方应用程序.它被打包为msi.

根据我的收集,我需要开发一个Bootstraper解决方案,让这些应用程序按顺序安装.

任何人都可以提供如何以这种方式实现安装程序的指南吗?我的搜索提出了一些部分实现,假设在Visual Studio中设计了Wix Bootstrapper项目.

wix bootstrapper burn wix3.6 .net-4.5

2
推荐指数
1
解决办法
4374
查看次数

WiX Bootstrapper在退出时运行可执行文件

我正在使用WiX(3.6)Burn bootstrapper将必备组件(Bonjour)与我的程序设置捆绑在一起.它工作得很好,但是:

我想在退出时向我的INSTALLDIR运行可执行文件的末尾添加一个步骤.我有点困难,想出这个.

我试过了:

<CustomAction Id="LaunchApp"  Directory="INSTALLDIR"
              ExeCommand="[INSTALLDIR]my app name.exe"/>
Run Code Online (Sandbox Code Playgroud)

但是不知道把它放在我的Burn的捆绑wxs文件中的哪个位置.有什么指针吗?谢谢!

编辑:

我也尝试过以下内容:

<CustomAction Id="LaunchApp"  Directory="INSTALLDIR"
              ExeCommand="[INSTALLDIR]Any Send.exe"/>
Run Code Online (Sandbox Code Playgroud)

在我的应用程序的安装程序MSI的末尾,但当它集成到Burn bootstrapper安装中时,此行似乎没有被执行.

windows installation wix bootstrapper burn

2
推荐指数
1
解决办法
2844
查看次数

使用wix burn Bootstrapper UI取消安装和回滚

我正在使用Wix 3.7.我正在尝试创建安装我的msi的wix burn bootstrapper.我在BA UI中添加了两个用于安装和取消的按钮.我正在使用C#进行BA UI设计.

我在安装按钮中添加了以下代码以进行启动安装.

  MySampleBA.Model.Engine.Detect();
  MySampleBA.hwnd = IntPtr.Zero;          
  MySampleBA.Model.Bootstrapper.PlanBegin += this.PlanBegin;
  MySampleBA.Model.Bootstrapper.DetectPackageComplete += this.DetectedPackage;
  MySampleBA.Model.Bootstrapper.DetectComplete += this.DetectComplete;
  MySampleBA.Model.Bootstrapper.PlanPackageBegin += this.PlanPackageBegin;
  MySampleBA.Model.Bootstrapper.PlanComplete += this.PlanComplete;
  MySampleBA.Model.Bootstrapper.ExecuteMsiMessage += this.ExecuteMsiMessage;
  MySampleBA.Model.Bootstrapper.ExecuteProgress += this.ApplyExecuteProgress;
  MySampleBA.Model.Bootstrapper.PlanMsiFeature += this.PlanMsiFeature;
  MySampleBA.Model.Bootstrapper.PlanPackageComplete += this.PlanPackageComplete;
  MySampleBA.Model.Bootstrapper.Progress += this.ApplyProgress;
  MySampleBA.Model.Bootstrapper.CacheAcquireProgress += this.CacheAcquireProgress;
  MySampleBA.Model.Bootstrapper.CacheComplete += this.CacheComplete;
  MySampleBA.Model.Bootstrapper.Error += this.ExecuteError;
  MySampleBA.Model.Bootstrapper.ExecutePackageComplete += this.ExecuteComplte;
Run Code Online (Sandbox Code Playgroud)

并使用启动安装

  MySampleBA.Model.Engine.Plan(LaunchAction.Install);
  MySampleBA.Model.Engine.Apply(MySampleBA.hwnd);
Run Code Online (Sandbox Code Playgroud)

安装工作正常.但我在中途取消安装时遇到问题.

我看到了bootstrapper应用程序回滚链接.但我无法了解IDCANCEL以及如何通过按钮单击触发错误事件.

任何人都可以通过单击BA UI中的取消按钮详细说明如何停止安装?

wix bootstrapper burn

2
推荐指数
1
解决办法
3605
查看次数

wix WixStdbaLicenseUrl在使用自定义主题时不隐藏许可证

我用它来隐藏许可证对话

<WixVariable Id="WixStdbaLicenseUrl" Value=""/
Run Code Online (Sandbox Code Playgroud)

哪个有效,直到我介绍一个自定义主题使用

<WixVariable Id="WixStdbaThemeXml" Value="Resource\RtfTheme.xml" />
<WixVariable Id="WixStdbaThemeWxl" Value="Resource\RtfTheme.wxl" />
Run Code Online (Sandbox Code Playgroud)

我的主题只是内置RtfTheme的一个副本,经过微调.我改变了窗口大小,并删除了修复按钮.

当我这样做时,会显示许可证对话框(尽管文本为空).我希望对话保持隐藏.

为什么?怎么修?

这是我尝试过的几种变体之一:

<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkLicense" >
    <bal:WixStandardBootstrapperApplication
            LicenseFile="..\..\Tools\Building\buildIncludes\LicenseAgreement-Memo.rtf"
      LogoFile="..\..\Tools\Building\buildIncludes\my.logo.png"
            SuppressOptionsUI="yes"
   />

</BootstrapperApplicationRef>
<!-- supress license display in boot strapper -->
<WixVariable Id="WixStdbaLicenseUrl" Value=""/>
<WixVariable Id="WixStdbaLicenseFile" Value=""/>
<!-- we are using a customized theme -->
<WixVariable Id="WixStdbaThemeXml" Value="Resource\RtfTheme.xml" />
<WixVariable Id="WixStdbaThemeWxl" Value="Resource\RtfTheme.wxl" />
Run Code Online (Sandbox Code Playgroud)

wix burn

2
推荐指数
1
解决办法
2435
查看次数

先决条件引导程序应用程序无法安装.NET 4.5

我的安装程序将.NET 4.5作为先决条件,当在Vista上运行我的安装程序(安装了.NET 4.0)时,它会按预期启动先决条件引导程序.单击"安装"会将对话框移动到进度页面,这就是它停止的位置.它只是暂时停留在0%,然后引导程序消失(退出).

日志片段:

[0A30:0360][2013-07-11T10:41:23]i300: Apply begin
[093C:06F4][2013-07-11T10:41:23]i360: Creating a system restore point.
[093C:06F4][2013-07-11T10:41:28]i361: Created a system restore point.
[0A30:0360][2013-07-11T10:41:28]i399: Apply complete, result: 0x0, restart: None, ba requested restart:  No
[0A30:0360][2013-07-11T10:41:28]i500: Shutting down, exit code: 0x0
[0A30:0360][2013-07-11T10:41:28]i000: The prerequisites were not successfully installed, error: 0x0. The bootstrapper application will be not reloaded.
Run Code Online (Sandbox Code Playgroud)

我的.NET包(这是包中的第一个包):

<PackageGroup Id="Netfx45Full">
  <ExePackage Id="Netfx45Full"
              Cache="no" 
              Compressed="yes"
              PerMachine="yes"
              Permanent="yes"
              Vital="yes"
              SourceFile="..\Common\PreRequisites\MSIL\dotNetFx45_Full_x86_x64.exe"
              InstallCondition="NOT (Netfx4FullVersion=&quot;4.5.50709&quot; OR Netfx4x64FullVersion=&quot;4.5.50709&quot;)"
              DetectCondition="(Netfx4FullVersion=&quot;4.5.50709&quot;) AND (NOT VersionNT64 OR (Netfx4x64FullVersion=&quot;4.5.50709&quot;))" />
</PackageGroup>
Run Code Online (Sandbox Code Playgroud)

我的bootstrappercore.config有以下内容:

<wix.bootstrapper>
    <host assemblyName="Bootstrapper">
        <supportedFramework …
Run Code Online (Sandbox Code Playgroud)

wix burn

2
推荐指数
1
解决办法
2379
查看次数

在WPF中的视图中进行更改时,ViewModel中的文本框值不会更新

当我更改文本框值时,它不会在视图模型中更新.

这是我在视图中的文本框xaml

<TextBox Height="23" HorizontalAlignment="Left" Margin="153,65,0,0" Name="textBox2" VerticalAlignment="Top" Width="120" Text="{Binding Path=InstallPath, Mode=TwoWay}"/>
Run Code Online (Sandbox Code Playgroud)

完整的xaml视图,

<Window.Resources>
    <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
</Window.Resources>

<Grid>

    <Button Content="Configure Logger" Height="44" HorizontalAlignment="Left" Margin="402,125,0,0" Name="button1" VerticalAlignment="Top" Width="108" Click="button1_Click" />
    <Button Content="Load DB" Height="43" HorizontalAlignment="Left" Margin="402,200,0,0" Name="button3" VerticalAlignment="Top" Width="108" Click="button3_Click" />
    <TextBlock Height="23" HorizontalAlignment="Left" Margin="46,36,0,0" Name="textBlock1" Text="SQL Server" VerticalAlignment="Top" />
    <TextBox Height="23" HorizontalAlignment="Left" Margin="153,36,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" TextChanged="textBox1_TextChanged" />
    <GroupBox Header="DB Names" HorizontalAlignment="Left" Margin="54,114,0,0" Name="groupBox1" VerticalAlignment="Top" >

    </GroupBox>


    <TextBlock Text="Test bootstrapper application." Margin="10" FontSize="18" HorizontalAlignment="Center" Foreground="Red" VerticalAlignment="Top" />
    <TextBlock Height="23" …
Run Code Online (Sandbox Code Playgroud)

wpf wix mvvm bootstrapper burn

2
推荐指数
1
解决办法
6829
查看次数

WiX Burn - 根据条件设置InstallFolder变量

我正在使用WiX 3.6(但如果需要可以升级到3.8)并且有一个用BURN编写的启动器,这几乎可以完成我需要的一切,除了这个问题; 我似乎无法破解.

我有两个变量; Product_XYZ和Product_ABC.第一个包含通过注册表搜索填充的文件夹路径(因此如果搜索没有找到我的reg密钥,它可能是空白的),另一个是硬编码的(即"[ProgramFilesFolder]\ABC").

我只是(?)想要将InstallFolder变量(通过Options按钮显示在UI中)设置为Product_XYZ变量中的值(如果它不是空白).如果它是空白的,我想将InstallFolder设置为Product_ABC中的值.

If Product_XYZ <> "" then
    InstallFolder = [Product_XYZ]
else
    InstallFolder = [Product_ABC]
endif 
Run Code Online (Sandbox Code Playgroud)

但显然使用BURN逻辑!!

谁能帮帮我吗 ?

干杯,

克里斯.

wix burn

2
推荐指数
1
解决办法
7235
查看次数

Wix Burn:自定义Bootstrapper升级,但与旧版本并排安装

我正在努力解决我的自定义引导程序升级问题.通过关注这个线程,我正在使用LaunchAction.Install.

这确实升级了产品以及Boostrapper,但较旧的Bootstrapper仍然存在,如下面的屏幕截图所示.

我的添加/删除程序选项板的屏幕截图

如果我从这里调用ver 1.0.0.0,它会显示Dialog to Install,但不会执行任何操作.但是,调用ver 1.0.1.0会让我选择卸载产品.但是,在卸载时,它只会自行删除,并且"我的产品"会被遗忘.

我也尝试过

_bootstrapper.Engine.Plan(LaunchAction.UpdateReplace);
Run Code Online (Sandbox Code Playgroud)

_bootstrapper.Engine.Plan(LaunchAction.UpdateReplaceEmbedded);
Run Code Online (Sandbox Code Playgroud)

但它没有效果.

问题:如何在不落入上述情况的情况下升级旧安装?有谁能提供CustomBA升级的工作示例?

问候

wix bootstrapper burn

2
推荐指数
1
解决办法
1565
查看次数

使用 Wix Burn 检测以前的捆绑版本

我试图检测以前安装的包的版本号是什么。然而,burn 似乎没有找到它,尽管它适当地检测到它将进行重大升级。

这是我的 bundle xml 的相关部分的样子:

<?define BUNDLE_UPGRADE_CODE=my_upgrade_code_guid?>

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

  <Bundle UpgradeCode="$(var.BUNDLE_UPGRADE_CODE)" DisableModify="yes" ...>

    <util:ProductSearch UpgradeCode="$(var.BUNDLE_UPGRADE_CODE)" Variable="PreviousVersion" />

    <BootstrapperApplicationRef ... />

    <Chain>
      <ExePackage Id="my_exe_package".../>
      <MsiPackage Id="my_msi_package" .../>
    </Chain>
  </Bundle>
</Wix>
Run Code Online (Sandbox Code Playgroud)

想法是 ProductSearch 应该使用升级代码检测任何产品并将版本号放在变量中PreviousVersion以供以后使用。但是,burn 似乎没有检测到任何带有此升级代码的现有产品,而是始终将版本设置为“ 0.0.0.0”。以下是日志文件的相关部分(为清晰起见进行了一些编辑):

...: Detect begin, 2 packages
...: Product or related product not found: {my_upgrade_code_guid}
...: Setting version variable 'PreviousVersion' to value '0.0.0.0'
...: Detected related bundle: {previous_bundle_product_code}, type: Upgrade, scope: PerMachine, version: 1.0.0.0, operation: MajorUpgrade
...: Detected related package: {previous_msi_product_code}, scope: PerMachine, …
Run Code Online (Sandbox Code Playgroud)

wix burn wix3.10

2
推荐指数
1
解决办法
2402
查看次数

带有 Visual Studio 2017 安装程序项目的 SQL Server 命名实例

软件:

  1. SQL Server Express 2016
  2. 视觉工作室 2017

我们一直在尝试将 SQL Server Express 2016 的命名实例安装为 VS 安装程序安装项目的一部分,但没有成功。

我们已尝试InstallNamedInstance()按以下方式调用并给出结果:

  1. SQLEXPR_x64_ENU.exe从管理员 cmd 窗口使用相同的命令行参数运行:成功
  2. InstallNamedInstance()从控制台应用程序调用并从管理员 cmd 窗口运行控制台应用程序:成功
  3. 安装自定义操作(所有人和只有我):失败
  4. BeforeInstall 事件(所有人和我自己):失败

我注意到 msi 运行时的当前用户是NT AUTHORITY\SYSTEM. 每当安装程序项目失败时,它都会失败并显示以下消息:

运行 SQL Server 安装程序的帐户不具有以下一项或全部权限:备份文件和目录的权限、管理审核和安全日志的权限以及调试程序的权限。要继续,请使用具有这两项权利的帐户。欲了解更多信息,请参阅 http://msdn.microsoft.com/en-us/library/ms813696.aspxhttp://msdn.microsoft.com/en-us/library/ms813959.aspxHTTP:// MSDN .microsoft.com/en-us/library/ms813847.aspx

这是安装程序项目的限制还是我遗漏了什么?使用 AdvancedInstaller 会有更好的运气吗?

请注意,安装程序项目的先决条件对我们不起作用,因为我们必须创建 SQL Server Express 的命名实例,而且我们无法看到如何将命令行参数传递给先决条件。

private void InstallNamedInstance()
{
    // NOTE: Change below instance name to get unique instances (or uninstall previous instance)
    var InstanceName = "TFPICDATABASES2";
    var proc …
Run Code Online (Sandbox Code Playgroud)

sql-server windows-installer burn sql-server-express visual-studio-2017

2
推荐指数
1
解决办法
1743
查看次数