<?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> <Bundle Name="My Test Program" Version="1.0.0.0" Manufacturer="Microsoft" UpgradeCode="cc7cfeae-c3a4-4430-841e-f927de3f9f95">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
<util:RegistrySearch Id="FindDotNet35SP1InstallRegValue" Root="HKLM"
Key="SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" Value="SP"
Variable="DotNetFramework35SP1InstallRegValue" />
<util:RegistrySearch Id="FindDotNet40FullInstallRegValue" Root="HKLM"
Key="SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" Value="Install"
Variable="DotNetFramework40FullInstallRegValue" />
<Chain>
<ExePackage Id="DotNet3.51" Cache="no" Compressed="no" Vital="no"
PerMachine="yes" Name="DotNet3.51"
SourceFile=".\sources\dotnetfx35sp1_full_x86_x64.exe"
InstallCommand="/passive /promptrestart" Permanent="yes"
DownloadUrl="http://webserver/dependencies/dotnetfx35sp1_full_x86_x64.exe"
DetectCondition="DotNetFramework35SP1InstallRegValue=1" />
<ExePackage Id="DotNet4.0" Cache="no" Compressed="no" Vital="no"
PerMachine="yes" Name="DotNet4.0"
InstallCommand="/passive /promptrestart" Permanent="yes"
SourceFile=".\sources\dotnetfx40_full_x86_x64.exe"
DownloadUrl="http://webserver/dependencies/dotnetfx40_full_x86_x64.exe"
DetectCondition="DotNetFramework40FullInstallRegValue=1" />
<ExePackage Id="ClientInstall" Cache="no" Compressed="no" Vital="yes"
PerMachine="yes" Name="ClientInstall"
SourceFile=".\sources\client_win32-setup.exe" />
</Chain>
</Bundle>
Run Code Online (Sandbox Code Playgroud)
好的,这是我的源代码.比如,一台机器永远不会安装.NET 3.5 SP1和.NET 4.0.所以,现在我运行setup.exe文件.我故意取消.NET 3.5 SP1和.NET …
我已经在VS 2010中为我的.Net 4应用程序创建了一个设置和部署项目.在我的先决条件中,我已经检查过.Net4先决条件但我已经了解到.Net4已经省略了WIC(Windows Imaging Component)以使其变得轻松.
当我在Vista/Win7中运行我的设置时,Net4安装不会给WIC带来错误,但是当我在XP中安装它时,它会给WIC带来错误.然后我必须先手动安装WIC然后运行我的设置.
我需要一个WIC的引导程序,它在XP中安装.Net4之前运行.请建议如何完成或链接.提前致谢.
.net wic bootstrapper setup-deployment visual-studio-setup-proje
我对安装人员世界很新.
我已成功为我的应用程序创建了一个.msi,它正在使用快捷方式构建并正确卸载.
我的下一个目标是使用安装程序打包.Net 4.5并在安装我的应用程序之前安装它.
我还有一个需要安装的第三方应用程序.它被打包为msi.
根据我的收集,我需要开发一个Bootstraper解决方案,让这些应用程序按顺序安装.
任何人都可以提供如何以这种方式实现安装程序的指南吗?我的搜索提出了一些部分实现,假设在Visual Studio中设计了Wix Bootstrapper项目.
我正在使用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中的取消按钮详细说明如何停止安装?
当我更改文本框值时,它不会在视图模型中更新.
这是我在视图中的文本框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) 我正在努力解决我的自定义引导程序升级问题.通过关注这个线程,我正在使用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升级的工作示例?
问候
我正在部署.NET应用程序与.NET Framework 4.0和VS 2010 C++可再发行组件作为先决条件.
当setup.exe在满足先决条件的计算机上运行时,引导程序会再次安装它们.
这是一个已知的问题?什么是解决它的正确方法?
有没有理由说引导程序是一个exe而不是MSI?而且,有没有办法生成MSI?
我需要有多个本地化的引导程序,并希望应用转换,就像可以为WiX MSI完成.而且,由于引导程序使用相同的本地化文件,因此能够对引导程序使用与安装程序相同的方法是很好的.
我正在尝试将WebAPI添加到现有的ASP.Net MVC项目中,我的问题是关于Unity:
在单独使用UnityMVC之前,该项目在App_Start文件夹中具有UnityConfig类,其代码如下:
container.RegisterType<IUnitOfWork, UnitOfWork>(new PerRequestLifetimeManager());
container.RegisterType<IDataContext, tfe_schemaContext>(new PerRequestLifetimeManager());
container.RegisterType<IPrintJobService, PrintJobService>(new PerRequestLifetimeManager());
container.RegisterType<IRepository<print_job>, Repository<print_job>>(new PerRequestLifetimeManager());
Run Code Online (Sandbox Code Playgroud)
为了使用WebAPI,我通过NuGet添加了UnityWebAPI,这个动作在App_Start文件夹中添加了UnityMvcActivator类.
执行项目时显示以下错误:"类型Unity.WebApi.UnityDependencyResolver似乎未实现Microsoft.Practices.ServiceLocation.IServiceLocator.参数名称:commonServiceLocator".
我使用Bootstrapper类找到了不同的代码示例,但没有使用UnityConfig类或UnityMvcActivator.
在Bootrstrapper类中,类型的注册是这样的:
container.RegisterType<IProductServices, ProductServices>().RegisterType<UnitOfWork>(new HierarchicalLifetimeManager());
Run Code Online (Sandbox Code Playgroud)
我对这一切有点失落,请帮助我理解并修复此错误.
我正在开发一个应用程序,它使用bootscrapper对象在应用程序首次启动时执行某些操作.例如,注册IoC对象,将某些变量放入asp.net应用程序会话对象,进行一些安全检查等.
我浏览了一下互联网,无法找到关于bootscrapper模式或任何有关该主题的文章的参考.
这是一个不同名称的已知模式吗?
编辑:只要应用程序启动,就会运行该对象.例如,我在wcf服务和ASP.net应用程序中看到过它.
我有一个 WiX 引导程序主题 xml 文件,我想永久禁用一个控件。我试图设置HexStyle
为WS_DISABLED
(链接)的值。但是,该控件仍处于启用状态。任何人都知道我是否可以使用HexStyle
或知道另一种永久禁用控件的方法。我使用WixStandardBootstrapperApplication.RtfLicense
BootstrapperApplication。
我可以在wix的setup项目中编写一个注册表项和值,代码如下:
<RegistryKey Id="WinApp" Root="HKLM" Key="Software\App\[ProductName]" Action="createAndRemoveOnUninstall" >
<RegistryValue Type="string" Name="InstallName" Value="[ProductName]" Action="write" KeyPath="yes"></RegistryValue>
</RegistryKey>
Run Code Online (Sandbox Code Playgroud)
我怎么能在bootstrapper项目中做?
bootstrapper ×12
wix ×8
burn ×4
.net ×3
wix3.6 ×2
.net-4.5 ×1
asp.net-mvc ×1
deployment ×1
installation ×1
mvvm ×1
registry ×1
wic ×1
wix3.8 ×1
wpf ×1