首页 文章
  • 0 votes
     answers
     views

    WiX安装程序 - 如何确定Visual Studio 2012中是否已安装NuGet包管理器?

    我有一个基于WiX技术的自定义安装程序,它在Visual Studio 2012/2013中安装了三个.vsix软件包 . 其中一个软件包是PostSharp - 它需要在Visual Studio中安装NuGet软件包管理器 . 问题是Visual Studio 2013默认具有NuGet包管理器,但Visual Studio 2012没有 . 所以,我需要检测已经安装在Visual Stud...
  • 49 votes
     answers
     views

    使用什么安装产品? InstallShield,WiX,Wise,高级安装程序等[关闭]

    我目前正在调查我们目前正在使用的安装包(Wise Installer 9),并转向处理Windows Vista,Windows 7和64位系统之类的东西 . 安装人员的本地化将是有益的,因为我们也有许多加拿大法国客户 . 我们目前使用以下技术安装软件包和实用程序: 进步4GL Visual Studio 2005 Visual Studio 2008 .NET Compact F...
  • 3 votes
     answers
     views

    错误1334.在Data1.cab中找不到.File

    我正在使用Win 7-64位机器 . 我有一个软件安装包,其中包含.msi文件,CAB文件和一些MST文件 . 我想修改cabinet文件 . 所以我使用CABARC实用程序解压缩了cab文件 . 但在对提取的文件进行任何更改之前,仅为了测试实用程序,我从当前目录中删除了原始的cab文件 . 并使用CABARC实用程序从原始cab文件中提取的文件中创建了一个新的cab文件 . 但是现在如果我运行....
  • 0 votes
     answers
     views

    使用'optional' CAB文件的MSI包上的WIX引导程序失败

    使用WIX 3.10: 我使用一些外部CAB文件编写了一个MSI包 . 有时我们通过网络部署,我们省略一个或多个CAB文件(其中包含程序执行不需要的文件) . 在安装时,我们取消选择相应的功能 . 在这种情况下,丢失CAB没有问题 . 现在我用管理的BA编写了一个bootstrapper . 在包裹链中,我设置'Cache = no': <MsiPackage Id="MyInst...
  • 2 votes
     answers
     views

    可以升级安装替换文件吗?

    似乎升级安装不会用新版本替换文件,但实际上它们会卸载旧的安装程序包并安装新的安装程序包 . 让我们想象一下,我已经安装了我的应用程序,并在安装目录中生成了一些文件 . 然后,用户获得该产品的新版本并启动安装包 . 该软件包删除旧版本的产品(因为新的安装程序包已将“删除以前的版本”设置为true,更高的版本号和不同的产品代码) . 由应用程序创建但不是由包创建的文件不会被删除,这很好 . 但是用户可...
  • 1 votes
     answers
     views

    wix升级会调用旧版本msi来卸载吗?

    我坚持在升级时保留旧版本msi的注册表 . 因为旧版本msi不向管理员授予读取权限,所以我无法使用RegistrySearch来完成我的工作 . 相反,在wix脚本Product.wxs中,我在Component元素中使用NeverOverWrite =“yes”和Permanent =“yes”来保持所有注册表的卸载 . 让我感到困惑的是,当新版本msi升级旧版本时,注册管理机构会丢失 . 请注...
  • 1 votes
     answers
     views

    从64位WiX安装程序写入WOW6432NODE

    我已经查看了有关从WiX写入32和64位注册表项的其他答案,但找不到此特定问题 . 我有一个IE浏览器帮助对象的WiX 3.6安装程序,在Windows 8.1和IE11之前一直工作正常 问题是在新的IE8.1增强保护模式下,我必须为IE注册一个64位和32位BHO才能使用它 . 在过去我并不关心64位IE,所以我有一个32位WiX项目,它只安装了一个32位的DLL . 在64位Windows W...
  • 3 votes
     answers
     views

    在64位组件中注册32位COM类

    我使用SharpShell为Windows资源管理器shell构建了一个ContextMenuHandler . 该程序集是为AnyCPU构建的,即在MSIL中构建,因此可以作为32位和64位运行 . 我打算只在64位窗口上运行它,但是,Windows 64上的32位应用程序仍然使用32位版本的shell进行打开对话框等 . 我已经在两个体系结构(32和64)上使用regasm工具手动注册了此程序...
  • 13 votes
     answers
     views

    Wix / MSI - 如何避免两次安装相同的MSI

    我的安装程序用WiX语言编写 . 它支持主要的升级机制 . 特别要求是 same MSI file will not be possible to install twice. 现在是棘手的部分:如果用户安装然后再次尝试安装(UI模式),安装程序进入维护模式,一切正常(更改/修复将显示为禁用 . ) 但是在安装时我们的用例以静默模式状态 msiexec.exe / i installer.msi ...
  • 2 votes
     answers
     views

    使用wix安装较新版本的msi时,从程序和功能中删除程序

    我正在使用WIX创建我的安装程序msi . 当我安装较新版本的应用程序时,我的旧应用程序已安装在计算机上,然后删除所有文件和旧版本的程序集并放置较新的版本文件和程序集,但在控制面板的程序和功能中显示旧版本和较新版本 . 我正在使用以下代码进行升级 <Upgrade Id="$(var.UpgradeCode)"> <UpgradeVersion Minim...
  • 9 votes
     answers
     views

    如何防止具有相同UpgradeCode / Version的WiX捆绑包安装两次

    我有一个与MSI打包在一起的应用程序,它与各种必需的第三方工具一起制作成WiX捆绑包 . 我已经在MSI du中禁用了应用程序如何工作的修改和修复操作,要求在再次安装相同版本之前要求完全卸载 . 当我单独运行MSI时,它按预期工作:安装程序无法运行两次 . 再次运行完全相同的Bundle时也是如此 . 但只需重建捆绑包(使用相同的 UpgradeCode 和 Version ),安装就会继续进行(...
  • 2 votes
     answers
     views

    WiX项目允许基于版本的升级和并行(多实例支持)安装

    我是持续集成,部署和交付的忠实粉丝 . 我相信基于版本的升级是可以实现的,但似乎使用基于WIX的安装程序使得支持此功能变得非常困难 . 我目前正在尝试更改我们产品的安装程序,以便可以并排安装(多实例支持)并允许基于修订的升级 . 在我的情况下,我希望允许并排安装1.0.0.0和1.0.0.1版本的产品,并且还支持升级任何安装,例如只允许从1.0.0.1升级到1.0.0.2而不更改1.0.0.0版本...
  • 0 votes
     answers
     views

    wix bundle只安装改了msi

    我有一个wix软件包,它说4个MSI - 所有版本1.0.0和Bundle版本1.0.0 . 我在Windows机器上安装它,在ARP中我看到WiX软件包为1.0.0 . 现在我只对其中一个MSI进行一些更改,比如B,并将Bundle版本更改为1.1.0,将更改后的MSI(B)版本更改为1.1.0 . 其余的MSI(A,C,D)仍然是1.0.0 . 现在,当我再次运行该捆绑包时,我预计将跳过A,...
  • 3 votes
     answers
     views

    使用WiX注册COM服务器

    我一直在尝试确定一个最佳案例解决方案,用于使用WiX注册COM服务器来创建Windows Installer程序包并且正在努力 . 在这篇文章Deployment Engineering Archive: HOWTO: Use Regsvr32.exe with WIX中,有一个打开请求"Setup police"通过exe自定义操作来打击使用regsvr32 . 我知道使用 ...
  • 19 votes
     answers
     views

    您使用什么方法将ASP.Net应用程序部署到野外?

    目前,我们通过在本地发布网站并通过电子邮件将zip文件通过电子邮件发送给系统管理员来部署已编译的ASP.Net应用程序,并提供(通常)冗长的部署说明 . 这是因为我们第一次将ASP.Net应用程序部署到客户时,dev和测试IIS实例是相同的,我们无法将该站点两次部署到同一台机器上 . 这为所有后续项目的部署奠定了基调 . 我现在正在评估我们的部署方法,我正在专门研究内置的部署工具;具体来说,我正在...
  • 1 votes
     answers
     views

    使用Visual Studio 2015时如何使用MSI分发VC redist?

    我们刚刚切换到Visual Studio 2015,但是我们在部署应用程序时遇到了问题 . 我们使用Wix / MSI进行部署,直到现在我们使用合并模块来分发VC redist . 但是现在我们有一个问题,我们的应用程序需要 ucrtbase.dll . 根据此article有一个新的 Universal CRT ,它不包含在任何合并模块中 . 在上述文章中他们说: Universal CRT...
  • 1 votes
     answers
     views

    Visual C可再发行下载特定版本

    以下问题:我发现stackoverflow link描述了不同Visual Studio版本的不同注册表项 . 其实我们正在使用"Microsoft Visual C++ 2015 Redistributable (x86) - 14.0.23026" . 可以在以下注册表项下找到这些包: HKLM\SOFTWARE\Classes\Installer\Dependencies...
  • 2 votes
     answers
     views

    执行后安装文件后的Wix自定义动作DLL

    我正在使用DLL安装一个打包在msi中的驱动程序 . 以下是片段: <Binary Id="CustomAction2.CA.dll" src="../artifacts/CustomAction2.CA.dll" /> <CustomAction Id="Install" ...
  • 1 votes
     answers
     views

    MSI多次安装相同版本的应用程序?

    我有一个MSI安装程序,我有以下配置: <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." AllowSameVersionUpgrades="yes"/> 假设我已经安装了1.0.0.0版本 . 下次,如果我安...
  • 8 votes
     answers
     views

    在wix中注册com dll

    如果不是自我注册 . 那么我们如何在使用WIX进行安装时执行COM dll注册? 根据tutorial,我使用了ComPlusApplication示例(非.net dll) . 但它不起作用 . 它没有注册 . 我可以成功地从命令行使用regsvr32进行注册 . 我读到没有为注册com dll创建自定义操作 . 那么最好的方法是什么?如果我们需要使用heat,我们在哪里编写命令并将结果wxs添...
  • 0 votes
     answers
     views

    Wix升级msi删除已安装的功能

    我正在使用Wix工具集为我的应用程序生成.msi . 当我升级到新版本时,一切都有效,除了每次运行较新的版本安装时,安装程序都不会检测已安装的功能,而是默认使用“必需”的功能,这意味着如果用户安装了任何其他功能除非用户再次明确检查安装,否则它们将被删除 . 反正有没有.msi检测每次安装较新版本时当前安装了哪些功能? <Wix xmlns="http://schemas.micro...
  • 5 votes
     answers
     views

    Bootstrapper:运行前检查是否安装了msi版本

    我正在尝试为以下问题找到解决方案: 我有许多程序(让我们称之为奴隶),这些程序都依赖于一个程序(主程序) . 我需要为每个奴隶分发一个安装程序 . 此安装程序需要安装主服务器 . 我希望能够对两个部分进行版本控制,因此多个msi似乎是正确的解决方案,与引导程序链接在一起 . 我的问题是如果从属安装程序安装了已安装的主服务器的相同版本,.msi将以修复/删除模式运行 . 从用户的角度来看,这是不可接...
  • 0 votes
     answers
     views

    如何在wix升级时检查文件产品版本

    我有一个安装应用程序的wix安装程序 . 为了在升级时保留配置文件,使用了“afterInstallExecute”选项: <MajorUpgrade AllowDowngrades="yes" Schedule="afterInstallExecute"/> 但是,这导致一些dll在升级时无法更新 . 原因是没有为这些dll设置文件版本,并且...
  • 0 votes
     answers
     views

    wix安装程序升级对话框没有显示,如何准备?

    我在客户端位置安装了msi . 现在我需要提供升级 . 当我用新版本准备新的msi时,它说已经安装了产品 . 如何升级产品 . Existing product msi(wix) info: ProductVersion : 0.0.0.1 PackageCode {B3B7B3A9-AF58-41C0-B3BD-F5ED1B5DE914} UpgradeCode {63B4B483...
  • 0 votes
     answers
     views

    如何使用PowerShell更改msi的产品代码?

    我们正在使用基于Wix的msi并安装基于屏蔽的Msi . 对于基于wix的msi,我更改了Wxs文件中的产品代码,因此根据我的需要更改了产品代码 . 但对于installshield msi,我不能这样做 . 我探索了Iscmdbld.exe选项来更改产品代码但没有帮助 . 一些博客说关于使用Wix 4.0'WixToolset.Dtf.WindowsInstaller.dll' . 但是我没有在...
  • 0 votes
     answers
     views

    Wix - MSI升级,无需删除旧版本

    我想知道是否有任何方法可以使用较新版本的产品覆盖旧文件 . 有几百个文件,所以有更好的方法吗?由于升级完全消除了所有文件 . 我想升级MSI覆盖文件 . 我的升级逻辑如下: <Upgrade Id="$(var.UpgradeCode)"> <UpgradeVersion Minimum="$(var.ProductVersion)&qu...
  • 12 votes
     answers
     views

    如何找到已安装的MSI文件的升级代码?

    在某些情况下,可能会出现 the need to retrieve MSI upgrade codes for deployed packages . 常见场景: 我接管了其他人的MSI项目,我需要确定哪些升级代码用于以前的版本 . 这是处理升级方案所必需的 . 我没有任何版本的存档 . 我在开发期间多次意外更改了我的WiX软件包的升级代码,我需要查找所有升级代码版本"in t...
  • 8 votes
     answers
     views

    Visual Studio和MSBuild在WiX项目上以不同方式触发BeforeBuild

    我有一个WiX(Windows安装程序XML)v3项目,其中包含对我解决方案中其他项目的引用 . 我正在使用WiX项目的BeforeBuild事件中的复制任务来收集引用项目的一些输出,以供以后使用Heat . 当我在Visual Studio中构建WiX项目(而不是解决方案)时,每个引用的项目都是在我的WiX项目之前构建的,一旦构建它们,我的WiX项目上的BeforeBuild事件就会触发,然后构...
  • 1 votes
     answers
     views

    使用wix注册标记为COM interop的.Net程序集

    我有一个vanilla .net类库,其中包含一些[ComVisible]类型,并且程序集本身标记为“Register for COM Interop” . 我正在尝试为应用程序构建一个WIX安装程序,它不仅需要将.net程序集复制到目标机器上的INSTALLATIONDIR,还需要注册该对象,以便一些传统的VB6应用程序可以使用.net程序集 . 我一直在使用heat.exe(更准确地说是热文件...
  • 0 votes
     answers
     views

    Wix:COM注册加热还是ComPlusExtension?

    我们用Wix构建我们的设置 . 我们混合使用本机和.NET组件,并使用COM进行互操作 . 到目前为止,我已经使用heat.exe生成wix片段来安装.NET程序集并将它们注册为COM服务器 . 由heat创建的wix片段负责编写与COM相关的注册表项 . 但是,有人告诉我你也可以使用ComPlusExtension进行COM注册 . 关于这个"ComPlus"的东西我能找到的...

热门问题