我的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) 我们来讨论以下主题.目前正在部署的应用程序有很好的知道xcopy方法.这种方法很难管理依赖项,文件更新等.有一些软件包的帮助下启动应用程序部署的想法,你知道你在Linux的帮助下RPM,但适用于Windows.
所以我有疑问:在Windows经典Windows安装程序(msi)或nuget或其他东西上使用什么包系统更好?
当我们使用内置的.net MSI安装程序时,为什么要选择Windows Installer XML(WiX)?
我有一个相当大的项目,包含多个类、500 多个图像以及与该项目关联的 20 多个文本文件。
我一直通过右键单击project->properties并单击发布选项卡来发布我的项目。我已经包含了文本文件和图像resources。
问题是,每当我安装一个应用程序时,通常它是一个简单的安装程序,即您下载一个安装程序(一个文件,例如 installer.exe),运行此文件,然后该文件将引导您完成安装过程,例如将其安装到哪里,等等。然后应用程序就安装好了。
好吧,在发布我的应用程序时,我指定了一个输出目录,然后留下了这些文件:
MyProjectName.application(清单?)如果我运行setup.exe,我就可以安装该应用程序并毫无问题地运行它。但是,它不仅不允许我选择安装位置,而且我还必须将所有这 3 个文件发送给用户。我试图将 发送setup.exe给朋友,但它说他们缺少所需的文件(我假设这就是 和 的application files用途.application)。
我如何将这些全部集中到一个安装程序中,一个更接近您安装企业应用程序的方式(考虑安装 chrome、eclipse、photoshop 等)?
我希望能够拥有一个安装程序文件并能够让用户下载该文件。
谢谢
我正在尝试将我的包组合在一个设置EXE文件中并将其上传到Internet.
我创建了一个Microsoft引导程序,其中包含带有项目MSI输出的Setup.exe ,以及必备的.NET Framework 2.0,Windows Installer 3.1,Visual C++ 2005可再发行组件和Microsoft ReportViewer.我使用Visual Studio 2008创建了一个安装项目.
现在我正在尝试使用WiX 3.6 创建单个压缩设置.我已经在Visual Studio 2008中安装了它.
我使用以下命令附加了setup.exe和MSI文件.
<ExePackage SourceFile ="setup.exe" Compressed ="yes"/>
<MsiPackage SourceFile ="myproject.msi" Compressed ="yes" />
Run Code Online (Sandbox Code Playgroud)
但它无法找到MSI文件.我怎样才能包含上述先决条件?
或者我可以在安装时从Internet下载上述先决条件吗?我该怎么做?
我已经合并了 msm 与 2015 crt:
<DirectoryRef Id="TARGETDIR" >
<Merge Id = "Microsoft_VC140_CRT_x64.msm" FileCompression = "yes" Language = "1033" SourceFile = "..\\..\\..\\..\\..\\..\\..\\external\\tools\\systemsetups\\merge_modules\\Microsoft_VC140_CRT_x64.msm" DiskId = "1" />"
</DirectoryRef>
<Feature>
<Feature Id="Complete" Title="Complete" Absent="allow" Level="1">
...
<MergeRef Id="Microsoft_VC140_CRT_x64.msm"/>
...
</Feature>
Run Code Online (Sandbox Code Playgroud)
但我仍然收到:
---------------------------
MyApp.exe - System Error
---------------------------
The program can't start because mfc140u.dll is missing from your computer. Try reinstalling the program to fix this problem.
---------------------------
OK
---------------------------
Run Code Online (Sandbox Code Playgroud)
有什么想法如何正确合并它吗?
软件:
我们一直在尝试将 SQL Server Express 2016 的命名实例安装为 VS 安装程序安装项目的一部分,但没有成功。
我们已尝试InstallNamedInstance()按以下方式调用并给出结果:
SQLEXPR_x64_ENU.exe从管理员 cmd 窗口使用相同的命令行参数运行:成功InstallNamedInstance()从控制台应用程序调用并从管理员 cmd 窗口运行控制台应用程序:成功我注意到 msi 运行时的当前用户是NT AUTHORITY\SYSTEM. 每当安装程序项目失败时,它都会失败并显示以下消息:
运行 SQL Server 安装程序的帐户不具有以下一项或全部权限:备份文件和目录的权限、管理审核和安全日志的权限以及调试程序的权限。要继续,请使用具有这两项权利的帐户。欲了解更多信息,请参阅 http://msdn.microsoft.com/en-us/library/ms813696.aspx, http://msdn.microsoft.com/en-us/library/ms813959.aspx和 HTTP:// 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
我通过(服务名称:测试服务)安装了Windows服务
Windows 7计算机中.NET Framework(:\ Windows \ Microsoft.NET \ FrameWork64 \ v4)中存在的InstallUtil.exe。
我可以在服务控制台下看到我的服务。
但是,我转到控制面板的程序和功能来手动卸载同一服务,但我没有在程序和功能下看到我的服务?
有什么想法为什么服务不会显示,以便用户可以卸载它?
我也检查了显示隐藏文件,但仍然没有显示服务?
wix ×5
c# ×3
.net ×2
installation ×2
burn ×1
installer ×1
nuget ×1
service ×1
sql-server ×1
wix3.6 ×1