Tag: windows installer

以编程方式卸载应用程序

我们有一个Excel AddIn说一个用C#写的,附加在Express中。 安装程序是从VS中的安装项目构build的。 现在我们要将它集成到另一个更大的附加应用程序中,例如B.我们希望能够在安装B期间卸载A. B也是用C#编写的,但是它的安装程序是从Advanced Installer构build的。 我试过下面的VBA,AddIns只包含“XLL Add In”而不是“A COM Add In”。 所以它不起作用。 所以我想写一个exe文件来检测是否安装了A,如果是的话,卸载它。 并在B的安装程序中调用该exe文件。 任何人都知道如何“在C#中卸载程序”? 还是有更好的解决办法? 谢谢一旦我可以检测到A并将其卸载到EXE中,我将能够将它挂在B的安装程序中。安装程序/ Uninstaller类在.NET中不是一个选项,因为我没有在B的安装程序中使用它们。 Dim item As AddIn Set item = Application.AddIns("A COM Add In") If Not item Is Nothing Then item.Installed = False 'item = Nothing 'Not sure if this does anything End If Dim item As AddIn Set […]

如何使用VS2010registry编辑器在64位操作系统上创build自定义registry项“Programmable”

在registry视图中,我使用以下pathHKCR\CLSID\{MYGUID}\Programmable手动创build了Programmable密钥。 我认为在32位操作系统上没有问题。 但是,在64位操作系统上, Programmable以某种方式被遗漏。 我想这可能与64位的registryredirect有关。 看一下registry,我发现CLSID\{MYGUID}实际上位于@ HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\CLSID\{MYGUID}并且没有在{MYGUID}下创build的Programmable密钥。 所以我的问题是 – 是否必须手动指定Programmable键@ HKLM\SOFTWARE\CLasses\Wow6432Node\CLSID\{MYGUID}\Programmable ? 我需要将目标平台更改为x64吗?

微星如何检测是Excel运行

我们的应用程序是Excel加载项。 我们使用Wix 3.10来构buildMSI。 目前我们可以执行卸载的应用程序,即使Excel运行连接加载项。 如果Excel正在运行,我需要中断卸载过程。 我们不需要closuresExcel,我只需要检测它是否正在运行。 如果是这样,我需要向用户显示适当的消息,并停止卸​​载过程。 如何检测在卸载过程中运行的Excel(任何应用程序)? 我可以使用“标准”MSI / Wixfunction实现所需的行为,还是应该编写一些自定义操作?

安装程序先决条件在VS2010安装项目

VS2010安装项目,Excel AddIn,C#,ExcelDNA,NetOffice 我使用VS2010安装程序创build安装程序。 单击安装项目的先决条件属性,我看到Windows Installer 3.1和Windows Installer 4.5列在先决条件列表中。 在VS2008中,我检查了Windows Installer 3.1的先决条件(尽pipe我不知道为什么?)。 在VS2010中,我不知道我应该检查Windows Installer 4.5的先决条件列表。 我想知道我是否需要检查它,为什么? 另一件事是共享加载项支持Microsoft .NET Framework 2.0更新(KB908002)也被列在先决条件列表中。 不知道我是否需要它? 我的AddIn是目标.NET 35 Sp1 在VS2008中,我的addIn目标是.NET framework 3.5 sp1,现在我转到VS2010,在安装项目中,我可以检查.NET 3.5 SP1或.NET 4.0作为先决条件。 我的目标.NET框架必须与先决条件列表中的版本相同吗?

如何在使用Windows安装程序安装新版本之前正确卸载以前的Excel 2010加载项?

在我的设置项目中,我更新了Version属性,比如从1.0.0到1.0.1 (对于新产品代码也是),然后将RemovePreviousVersions设置为true。 然后我重build了安装项目。 安装没问题,但是当我打开Excel的时候发生了一件有趣的事情。 以前的版本不知何故被删除,仍然显示在function区栏上。 显然安装程序没有正常工作。 我不确定是否错过了某些东西,或者在安装项目中设置了错误的东西。 我曾经想过改变Version & RemovePreviousVersions就足够了。 也许我错了。 那么我还有什么要做的呢? 任何人都可以给我一些指针? 美东时间: 还有一件事要添加在这里:我不认为我重新构build安装程序时更改程序集版本或文件版本。 我应该更新哪一个? 文件一或大会之一或两者? 如果我只是保持原来的版本不变,这是否重要?

在MSI安装程序中selectEveryone / Just Me选项有一些怪癖

任何人都可以详细解释MSI安装程序中以下两个选项之间的区别是什么, Everyone人和Just Me ? Just Me总比“每个人”都好? 在我这里,出于某种原因,客户端似乎正面临一些与excel插件安装程序的怪癖。 他们只能使用Just Me选项才能正确运行插件。 如果selectEveryone选项,则该插件的某些function将无法正常工作。 顺便说一下,这是一个VSTO excel 2010插件,我使用VS2010安装程序创buildMSI安装程序。

Wix – 检测Excel是32位还是64位

我见过几个类似的问题,但没有从wix文件做到这一点。 我正在使用下面的代码片段来检测是否安装了Excel。 <!– Check if Excel is installed –> <Property Id="EXCEL2010"> <ComponentSearch Id="DetectExcel2010" Guid="{8B1BF0B4-A1CA-4656-AA46-D11C50BC55A4}" Type="file"/> </Property> <Condition Message="Microsoft Excel 2010 required."> <![CDATA[Installed OR EXCEL2010]]> </Condition> 但是我想额外检查Excel 2010是x86还是x64,如果可能的话显示一些消息。 有一些类似的方法来从同一个文件做到这一点?

wix – 检查Excel 2013版本

我正在开发x86和x32版本的Excel插件,在我的Wix安装程序中,如果用户尝试在x64版本的Excel 2013上安装x86版本的插件,我想提出错误,反之亦然。 我正在这样做: 来自x86插件的.wxs文件片段: <!– Check if Excel x86 is installed –> <Property Id="EXCEL2013"> <ComponentSearch Id="DetectExcel2013" Guid="{C8A65ABE-3270-4FD7-B854-50C8082C8F39}" Type="file"/> </Property> <Condition Message="Please install Excel 2013×86."> <![CDATA[Installed OR EXCEL2013]]> </Condition> snnipet从x64插件.wxs文件: <!– Check if Excel x64 is installed –> <Property Id="EXCEL2013"> <ComponentSearch Id="DetectExcel2013" Guid="{E3BD1151-B9CA-4D45-A77E-51A6E0ED322A}" Type="file"/> </Property> <Condition Message="Please install Excel 2013×64."> <![CDATA[EXCEL2013]]> </Condition> 我在https://social.msdn.microsoft.com/Forums/vstudio/en-US/bdcd8850-0b6a-4fd1-a0cb-647ff12c3088/finding-the-component-id-for-office-2013上find了这个Guids ?论坛= vsto ,它似乎可靠。 […]

Wix:如何将.XLL文件复制到Excel的Excel版本相关的常见LIBRARY文件夹?

我是WiX新手,尝试创build一个安装程序来分发我创build的一些Excel加载项(.XLL文件)。 我现在知道如何将我的文件放在当前用户的Excel加载项库文件夹中,这个文件夹已经是%AppData%\ Microsoft \ AddIns许多年了,现在还是o / s版本。 不过,我还需要复制(但不激活)一些.XLL文件到Excel的Excel / Common共享插件库文件夹中,这是依赖于Excel版本的。 例如.. \ Office 11 \ LIBRARY,.. \ Office 14 \ LIBRARY等 如何编写我的脚本,以确保安装程序将正确地将.XLL文件复制到公用/共享“Office XX \ LIBRARY”文件夹,而不pipe安装的Excel版本是什么? 当我使用InstallShield时,我依赖于可以直接从IS脚本访问的Excel自动化对象中的LibraryPath()函数。 在WiX中,我不得不创build一个自定义操作项目来访问Excel对象,以便读取库path? 谢谢你的时间。

如何为Office 2007 .NET 3.5目标环境部署Excel 2010加载项?

在Office 2010 + .Net Framework 4.0的目标计算机上安装Excel 2010加载项是绝对没问题的。 但是,我不确定Excel 2010加载项是否与Excel 2007和.Net 3.5兼容。 任何人都可以告诉我有关为目标环境部署Excel 2010加载项的一些基本概念? 我会很感激。 此外,在安装项目的先决条件中,我目前有.NET 4 client profile , VS2010 tools for office runtime , Windows Installer 3.1检查。 我需要检查其他选项吗? 谢谢 编辑: pipe理将Excel 2010加载项安装到运行Office 2007的目标计算机上。 本教程已经介绍了大部分步骤,但有一些技巧需要注意。 主要项目 一定要在你的主项目中检查你的应用程序的目标框架 安装项目 在registry编辑器中,如果您正在部署自动化加载项(例如HKCR \ CLSID \ {您的自定义类ID} \ Programmable ),则除了上述教程中build议的那些外,还要创build以下新键: 将可编程键设置为AlwaysCreate = True (如果您不创build此键并将其正确设置,UDF将不会出现在自动化服务器列表中) 在启动条件编辑器中,添加Windows Installer Search ,并将其重命名为Search for […]