我很难在Azure机器(WindowsServer2012R2数据中心)上自动安装应用程序。我的脚本分两步编写:第一步:安装.NET4.6.1然后重启完成安装第二步:安装我的应用我无法在机器wackup时重新启动我的脚本。有使用ScheduldedTask或schtasks的技术,但只有当我使用远程桌面登录计算机时它才会成功。当脚本由AzureCustomScriptExtension运行时,脚本不会被安排重新启动。目标是运行ARM部署,这将使用CustomScriptExtension安装我的应用程序,而无需我执行任何操作。这是我使用ScheduldedTask创建唤醒任务的代码:$
我们最近决定将VC++可再分发包与我们的应用程序捆绑在一起。不幸的是,这破坏了我们的升级。旧产品未正确卸载,并且仍然与新版本一起出现在添加/删除控制面板中。如果我理解正确,当旧安装程序的所有功能都没有卸载时会发生这种情况,这就是我尝试下面描述的两种方法的原因。如果我不捆绑VC可再发行组件,旧产品将不再显示在控制面板中。出现此行为的原因是什么?我该如何解决?常用代码版本1:附加功能版本2:在现有功能中 最佳答案 我会使用详细日志进行升级以查看发生了什么。特别是查看适用于您的升级的FindRelatedProduct事件(将有多个),看
是否有关于如何使用WIX创建/使用自定义Windows虚拟帐户的任何公开可用的HowTos/示例?具体来说,我们希望使用仅具有所需权限的专用用户帐户来安装服务。我们不想为此帐户生成或管理密码,也不能保证所有服务器都在一个域中。虚拟账户似乎是一个很好的解决方案,但我不知道如何在Wix中创建一个,或者如何向它添加组/权限。 最佳答案 好像WIX不直接支持虚拟账户。但是,虚拟帐户是从服务中派生出来的。因此,您只需使用帐户NTService\(其中是使用该帐户的服务的名称)配置服务时。例如:之后,您可以使用此命令将其添加到所需的组中:net
我刚刚将WiXXmlFile元素与匹配多个XML节点的ElementPath一起使用,它只更新第一个节点,而不是所有匹配的节点。这是WiX中的错误吗?任何人都可以为此提出解决方法吗? 最佳答案 如果多个元素的某个属性具有不同的值(例如,您有5个元素,每个元素具有不同的Name属性),您可以重复设置每个元素的值(使用格式化路径)。如果不是这种情况,我想您可以使用一些丑陋的技巧来绕过它。例如,更改您已设置想要的值的每个节点的节点文本,然后您可以更改下一个实例,因为它成为第一个。当然,当您完成所有实例的检查后,将文本改回...
我有一个安装程序,它部署并运行一个单独的.exe文件以将驱动程序部署到系统。不幸的是,微软似乎已经放弃了对Windows10及更高版本中VersionNT宏的支持,soIimplementedanapproachsuggestedinanotherpost:编写一个函数来查询kernel32.dll的版本号,并与标记值(10.0.10240.16384)进行比较。关键在于:当我直接从管理控制台运行此命令时,该命令会正确检测到我正在运行的Windows版本。CurrentWindowsVersion:10.0.10240.16384-CutoffVersion:10.0.10240.16
我们的安装程序当前“安装”了一个Windows服务exe,即它只是将文件复制到用户的PC上,但并不启动它。然后当我们的应用程序运行时,它将使用InstallUtil多次“安装”该服务,并且该服务的每个实例都将具有不同的服务名称。所以当我们升级我们的应用程序时,我们不知道有多少这些服务正在运行以及它们叫什么-但我们知道它们的服务名称将以“ABCService_”开头。因此,我创建了几个VB.NET自定义操作-一个称为“stopServices”,一个称为“startServices”。第一个将扫描用户的PC以查找以“ABCService_”开头的任何Windows服务,并将其名称存储在临
我正在编写一个执行以下操作的批处理文件:采用作为目录路径的参数(%1)。然后,它要求用户输入扩展名(%ext%)。最后,批处理文件使用for循环来计算目录及其以用户提供的扩展名结尾的子目录中存在的文件数量。此外,在循环执行此操作时,它还会输出每个文件的完全限定路径的控制台行。我正在努力解决的问题是for循环。这是它的第一个版本:for/f"delims="%%fin('dir/s/b"%1"^|findstr/e"!ext!"')do(set/acount+=1setline=%%fecho!line!)如果我输入任何以句点开头的扩展名(例如:.exe),此代码就可以正常工作。它计算行
例如,我有以下WIX标记指示MSI安装程序从包含的DLL调用自定义操作:并且DLL本身具有以下用于自定义操作的C++代码:#pragmacomment(linker,"/EXPORT:msiOnInstallFinalize=_msiOnInstallFinalize@4")extern"C"UINT__stdcallmsiOnInstallFinalize(MSIHANDLEhInstall){//Dotheworkif(doWork(hInstall)==FALSE){//Error,cannotcontinue!returnERROR_INSTALL_FAILURE;}retur
我很怀疑为什么我们不能使用wix以外的任何语言来创建msi安装程序。使用以下设置功能:Windows安装程序3.1WIX工具集 最佳答案 WindowsInstaller是一种Windows平台服务,由客户端、服务、API、数据库规范和SDK组成。主要的数据库类型是.MSI(安装程序)、.MSM(合并模块)、.MSP(补丁)、.MST(转换)、.CUB(单元测试).PCP(补丁源代码)等等忘记了。WindowsInstallerXML是一种XML/XSD语言和编译器,可将XML转换为WindowsInstaller数据库。还有其他工
我有一个WIXBurnBootstapper,但遇到了问题。在某些计算机上,它会安装链中的两个MSI文件。但是大多数时候它会跳过Chain中的第一个项目,就像它甚至不存在一样,有什么想法吗?具体来说,它不会安装IntelSDK。日志文件(有2个):LogFileLongLogFile(Verbose) 最佳答案 它认为它已经安装了:i101:Detectedpackage:IntelSDK,state:Present,cached:Complete如果它被检测为Present,它不会安装包。