如果尚未安装在客户端的计算机上,如何使用我的Wix软件包下载所需的.NET Framework?我已经有条件检查已安装的.NET版本,但我不知道如何在未找到时下载和安装它.
ClickOnce通过检查属性页面中的先决条件自动执行此操作.由于其他一些要求,我只需要在Wix中完成它.
谢谢!
我的C#应用程序有一个wix Windows Installer.事情正在发挥作用,我能够安装和卸载应用程序.但是我想要在我的应用程序中安装一些先决条件和其他第三方应用程序.
先决条件:
第三方申请:
当然,我并不是在寻找所有先决条件和第三方应用程序的完整指南.我只需要大家帮忙搞清楚我是如何将这些exe和msi设置嵌入到我的wix安装中的一部分.
此外,有些是为了x64,有些是为了x86,所以它应该足以处理操作系统版本和架构.如何用wix实现这一目标.
我一直在互联网上搜索一段时间,似乎没有什么具体的东西适合我.
我需要确保如果没有安装这些应用程序,那么软件也应该不安装.除此之外,如果已安装任何先决条件或第三方应用程序,则不应再次安装.
我想这可以使用一些wix工具完成,但我无法获得有关howto的任何具体说明.
编辑1
好的我已经Microsoft .NET Framework 4 (x86 and x64)安装了,我现在面临的问题是我无法安装SQL Server Compact 3.5 SP2.我正在逐一做事让我更清楚.在这里,我正在分享我的代码,以便人们可以查看:
<?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="Bootstrapper" Version="1.0.0.0" Manufacturer="Billy"
UpgradeCode="PUT-GUID-HERE">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
<Chain>
<PackageGroupRef Id="Netfx4Full"/>
<PackageGroupRef Id="SQLExpressCE"/>
<!-- Install Application …Run Code Online (Sandbox Code Playgroud) 我正在开发一个使用ClickOnce部署的项目,我正在经历几个问题.
我的软件解决方案中有两个组件:一个需要运行.NET framework 3.5 的桌面客户端,以及一个列出可用文档的服务器(ASP.NET应用程序),并提供了一种使用ClickOnce安装桌面客户端的方法.
我的第一个问题是前提条件:我需要一种在客户端安装之前安装3.5框架的方法.Visual Studio创建了一个处理setup.exe它的东西,但是为了使它工作,它必须直接运行(而不是链接到.application文件),并且在创建ClickOnce清单时必须知道部署URL.
所以我还有两个问题:显然没有办法在安装后使用查询字符串参数运行客户端应用程序setup.exe,所以不要让服务器显示链接到像".../client.application"这样的URL的文档列表. document = doc1"我只能链接到setup.exe.
另一个问题是最糟糕的:服务器旨在用于相对较小的专用网络,而不是用于单个Web服务器.问题是:我在构建时不知道ClickOnce客户端的部署URL,因此在setup.exe选中"从网站安装"选项时无法正常运行.目前,解决方法是使用脱机安装程序,其中包含setup.exe大型ZIP文件中的先决条件和ClickOnce部署文件.
具有适当框架版本的用户仍然可以使用.application带有查询字符串的链接来安装/更新客户端并打开文档.没有框架的用户会收到错误消息("系统更新需要blablabla 3.5.0.0 blabla GAC"),并且必须下载ZIP文件,将其解压缩到本地计算机并运行setup.exe文件以安装框架,然后客户端.之后,他必须返回文档列表并使用链接以适当的参数启动客户端.
毋庸置疑,我对这一策略并不感到自豪,这种策略破坏了ClickOnce的所有部署优势.
是否有可能以更优雅的方式摆脱先决条件问题?在网络中部署服务器时是否有一种简单的方法来修改ClickOnce应用程序的安装URL(比如在配置文件中写入URL)?
目前,.NET Framework 4.5仅在Windows 7及更高版本上运行:
Operating system Version 4.5 Beta
--------------------------------------------------------
Windows 8 Consumer Preview ? (see notes)
Windows 7, all editions ?
Windows Vista, all editions —
Windows XP Professional, all editions —
Run Code Online (Sandbox Code Playgroud)
虽然我知道XP支持正在被删除,但我对于不支持Vista的决定感到有些惊讶.(毕竟,.NET 4支持XP及更高版本.)
是否有任何迹象(新闻公告,MSDN博客条目......)在.NET 4.5发布时将支持更多操作系统?
我正在从Visual Studio 2013社区版中为我的wpf应用程序创建一个clickonce安装程序.此应用程序使用localdb.如果我手动安装sqlserver express 2014 LocalDB,它在目标机器上运行正常.
但我想在我的clickonce部署中包含SQL Server Express 2014 LocalDB的安装程序.
但是,当我打开先决条件对话框时,只有SQL Server 2012 Express LocalDB可用(参见图像).我尝试选择'2012,但它与我的安装程序放入数据文件夹的mdf文件不兼容.
问题是:如何将SQL Server Express 2014 LocalDB安装程序作为先决条件包括在内?有没有办法将MSI文件放在某处并使其工作?或者更容易坚持'2012?

clickonce prerequisites localdb visual-studio-2013 visual-studio-2015
tl; dr Visual Studio 2013创建普通安装程序,项目模板:其他项目类型> Visual Studio安装程序>安装项目
我必须要有一些简单的东西.我已经下载了安装程序(即NDP451-KB2858728-x86-x64-AllOS-ENU.exe),告诉Visual Studio在哪里找到它们有多难(或者将它们放在自然会看到的位置) )?
=================================================
除了包含先决条件外,一切正常.
我有谷歌这个,发现了一些其他堆栈交换文章,但没有完全回答这个问题.
我创建了一个简单的"安装项目",其中包含一些先决条件,我希望与安装程序捆绑在一起(最终用户在安装时无需下载).我收到此错误:
错误1要在"先决条件"对话框中启用"从我的应用程序的相同位置下载先决条件",必须将项目"Microsoft .NET Framework 4.5(x86和x64)"的文件"DotNetFX45\dotNetFx45_Full_x86_x64.exe"下载到本地计算机.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=239883.d:\ junk\installerWalkthrough\Setup1\Setup1.vdproj Setup1
这很清楚.
除了:在我下载之后,我在哪里放置它以便Visual Studio知道在哪里找到它以将它包含在安装项目的构建中?
我已经找了一些选项/属性来为先决条件指定安装文件的路径,没有运气.如果我转到错误消息中提到的URL,它继续关于"clickonce"和其他类型的安装.没有关于简单的"安装项目"类型的安装.关于将下载文件放在哪里的说明就像泥浆一样清晰,似乎特定于win版本8.1A,但是如果你进入"C:\ Program Files(x86)\ Microsoft SDKs\Windows \"那里有许多不同的win版本列为子文件夹,一些带有bootstrapper文件夹,有些没有,等等.
我尝试将NDP451-KB2858728-x86-x64-AllOS-ENU.exe放在C:\ Program Files(x86)\ Microsoft SDKs\Windows\v8.1A\Bootstrapper\Packages\DotNetFX451\en中,这似乎在哪里(url来自错误消息)告诉我把它,但VS没有在构建中找到它.
我必须要有一些简单的东西.我已经安装了下载先决条件的安装程序,告诉Visual Studio在哪里获取它们有多难?
我已经创建了一个自定义安装程序包,用于在客户端计算机上安装某些字体并将其部署到以下的先决条件文件夹中C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\FontsInstaller.一切都很好,引用它作为Visual Studio 2010中的先决条件,我能够毫无问题地发布应用程序.
另一方面,客户端在哈希验证期间出错:
验证文件哈希
错误:安装程序检测到文件'C:\ Users\RMORAN~1\AppData\Local\Temp\VSD4684.tmp\FontsInstaller\fontsinstaller.msi'自最初发布以来已更改或可能已损坏.
我试过包含哈希并用Bootstrapper Manifest Generator排除它,我总是在客户端得到相同的结果.一旦失败哈希验证,该文件立即被删除(出于安全原因).
现在,我发现Microsoft Connect错误报告说:
"我安装了自定义引导程序包作为我的应用程序的先决条件.当我在安装了Visual Studio 2012的系统上构建它时,安装失败并出现以下错误:
安装程序检测到文件"..."自最初发布以来已更改或可能已损坏.
我在Visual Studio 2010中构建,没有对包或项目进行任何更改.如果未安装Visual Studio 2012,则按预期工作."
我尝试在没有安装VS2012的另一个工作站上构建此安装程序,并在客户端上传递哈希验证(我遇到了签名问题,但这是一个不同的故事).构建机器具有VS2012而不是客户端确实存在问题,因为在原始工作站上构建的软件包在没有VS2012的机器上也会出现故障.
有没有其他人遇到过这个问题,如果是这样,除了没有安装VS2012之外,你找到了解决方法吗?
clickonce prerequisites visual-studio-2010 visual-studio-2012
我们有一个使用面向.NET Framework 4.0的Visual Studio 2010构建的应用程序.我们正在升级应用程序以使用.NET Framework 4.5,并且正在使用Visual Studio 2012编写.Microsoft不再提供自己的安装项目类型,因此我们不得不使用此InstallShield LE.但是,在InstallShield的Prerequisites部分中似乎有一个明显的遗漏.没有选项可以声明必须安装.NET Framework 4.5,只能安装.NET Framework 4.0选项.我花了几天时间尝试定位信息以解决此问题,但没有解决.Flexera软件似乎几乎无法接近,因为我似乎无法抓住该公司的任何人来协助.这并不能让我对他们的产品充满信心.如何将.NET Framework 4.5作为先决条件?
.net installshield prerequisites .net-4.5 visual-studio-2012
我认为这些技术确实优于Java行业
目前,我们使用Inno Setup作为引导程序来安装MSI先决条件.维护设置有点复杂.我找到了Burn工具,它可以帮助我们通过一个设置来安装我们需要的任何东西来解决这个问题.我找不到这个工具的文档或样本.有人对此有所了解吗?或者有替代解决方案吗?
我正在为ISS bootstrapper现在采取的行动寻找替代解决方案:
prerequisites ×10
.net ×4
clickonce ×3
wix ×3
.net-4.5 ×2
c# ×2
bootstrapper ×1
burn ×1
inno-setup ×1
java ×1
localdb ×1
spring ×1
struts2 ×1
windows ×1