我正在使用本地数据库进行WPF应用程序.我的问题是如何将其转换为将在所有PC上运行的应用程序(Windows OS.我尝试将整个Project文件夹传输到另一台PC并尝试运行EXE(debug/bin/application.exe),但没有运行.工作. 我正在使用.NET Framework 4.5 .. 在Visual Studio 2013上工作 谢谢 解决方案 根据我的经验,部署工程是两个阶段: 1)依赖性分析:我的应用程序需要什么? .网?爪哇? SQL Server? II?文件\文件夹复制?配置设置.捷径? 2)如何实施/开发自动化以实现这些目标. 您说您将文件复制而不是工作吗?这意味着您需要花更多的时间在依赖分析上. 对于#2,我会从这里开始. https://github.com/iswix-llc/iswix-llc/iswix-tlc/iswix-tutorials iSwix是一个我维持的开源项目,它使得在Wi
以下是关于 windows-installer 的编程技术问答
我有几个文件无法在Windows Installer补丁中更新.它们是动态链接文件,带有文件哈希更改,但是每个文件的msifilehash表" file_"已更改,以下是MisfileHash表中的同一文件: rtm filea:_A0FB2DAA62D356E1B64EA4EA457014BA886 0 543212956 662074909 -1730111711 -209679360011- 补丁7状态:_490DC427E0D9E512E96D3E9BF2B317C7 0 -1371102532 -4011944406 -232195904 52597274747 也许这会导致更新失败. 所以我问,是否有任何方法强制动态链接组件在补丁中更新? 谢谢 解决方案 这样做的一个常见原因是补丁违反了组件规则(例如,通过删除组件).补丁安装的详细日志会说明不支持SELMGR和组件删除.补丁更新将进入广告模式,无法更新任何内容.无论如何,要发布详细日志以查看是否有有关文件更换的条目以
我已经开发了WPF应用程序并为此创建了设置.我正在使用Windows安装程序来创建设置软件包.现在,我想在安装我的软件包后在开始菜单中包含卸载myprogram.exe. 我能够在安装后添加EXE来运行程序.我想包括卸载myprogram.exe,readme文件,在开始菜单中的帮助文件. 任何建议都对我有帮助. 提前致谢, 易卜拉欣. 解决方案 创建安装程序包时,它会分配唯一的ID(如果我不忘记的话,产品代码).您可以使用以下行创建一个批处理文件: @echo off start /b /l msiexec.exe /x {Product Code} 现在右键单击文件系统树(在项目视图中),并包含此批处理文件.为其分配一个不错的图标,并创建"卸载"条目以启动您的应用程序菜单文件夹. ps: - 只需在运行或CMD窗口中键入msiexec.exe即可获得更多选项. pps: - 设置项目的属性中可用产品代码.在解决方案树和打开属性选项卡中选择设置项目.
我有一个要在终端服务器上安装的.NET程序.过去,我创建了安装程序项目并生成了一个MSI.但是,终端服务器要求在运行MSI之前将所有用户碰撞,我想避免这种情况.有没有MSI的安装方法? 有时对于某些用户帐户,我可以简单地复制.exe并使用它.但是,对于其他这样做的用户会给明显存在的文件带来Wierd"未找到"错误. (显然,如果没有通过MSI正式安装EXE,则必须存在一些注册表设置才能运行.NET EXE可能存在或可能不存在?) 解决方案 是的,通常,除非您需要将组件安装到全局汇编缓存(GAC)中,否则您需要做的就是将文件复制到要运行的计算机上的文件夹中.要运行它,您需要做的就是双击.exe文件. 唯一的警告是机器必须已经安装了正确的.NET框架... 其他解决方案 如建议,复制将是最简单的. 如果要创建一个非MSI安装程序,请查看 NSIS论坛. 其他解决方案 我想知道为什么没有提及Clickonce ... 这是一个"轻量级"安装,作为开发人
我没想到会在2018年通过CD安装部署应用程序,但是我们在这里.我在ISO映像上有以下文件: E: |- autorun.inf |- Setup.msi |- CD_icon.ico |- setup.exe 这是一个屏幕截图: autorun.inf包含以下内容: [autorun] icon=CD_icon.ico label=Instal MySoftware UseAutoPlay=1 shellexecute=Setup.msi [Content] MusicFiles=false PictureFiles=false VideoFiles=false 双击CD文件或选择"从媒体运行或安装程序"时,我将获得此CD图像的此错误对话框: 我的ISO文件有什么问题?为什么不显示图标并且安装程序不运行? 解决方案 Windows 7-10忽略autorun.inf :这篇Wikipedia文章描述了随着时间的时间处理 的差异: aut
我有一个项目,取决于MSVCR80.dll(MS Visual C运行时)的特定版本,并且我遇到了问题,根据特定的系统配置,我的应用并不总是获得该应用程序该文件的正确版本.对于找到带有该名称的文件所需的路径是有点垃圾,而且并非总是正确的... 在VS2005中创建部署项目时是否有办法,请确保我的应用将始终使用我提供的运行时?当我将运行时文件添加到项目中时,它询问有关创建合并模块的问题...但不确定该功能是什么.无论创建一个问题,问题仍然存在. 解决方案 马丁·里希特(Martin Richter)在Codeproject上写了一篇文章: 此解决方案不依赖您的MSI软件包,而是使用使用CRT文件的应用程序. 其他解决方案 我不确定安装后是否是您的应用程序,或者是否是您使用的DLL,您将其用作安装的一部分? 做一个很长的故事,非常简短:将C/C ++运行时间的新版本安装为 Win32组件或并排安装.这意味着这些文件将进入 c:\ Windows \ winsxs
我使用Visual Studio Installer(Visual Studio Setup Project)为MyProgram创建了一个安装程序.它称为" myProgram setup.msi".它安装了程序罚款,如果使用 add/remove程序卸载控制面板 问题在于,我想在"卸载myprogram"的程序快捷方式下向"用户程序菜单"添加快捷方式.我尝试以3种不同的方式进行此操作,并且在中,所有3种方法如果使用该快捷方式卸载了MyProgram,则卸载将留下2个空文件夹(" ...程序)文件\ mycompany \" and" ... Program Files \ MyCompany \ myProgram \"). 这是我尝试制作卸载器快捷方式的三种方式: 1)批处理或脚本文件的快捷方式 卸载myprogram.bat: @ECHO OFF msiexec /uninstall {MyGUID} 卸载myprogram.vbs: Di
我的解决方案中有3个项目要部署.是否有一种使用Visual Studio的设置项目使用一个MSI来部署所有三个应用程序并让用户决定在安装过程中要安装的应用程序的好方法? 我有3个单个应用程序的设置项目,我还有一个总体设置项目,该项目具有其他三个项目的输出.我在正确的轨道上还是有更好的方法? 解决方案 好吧,这就是我最终做的.我构建了我的三个MSI,然后构建了一个小型Splash屏幕应用程序,该应用程序为每个应用程序提供一个复选框.当用户单击该启动屏幕上安装时,它使用/QB-选项调用msiexec,以序列上所有选定的应用程序显示最小化的安装. 然后,我使用SFX编译器将我的Splash屏幕应用程序和三个安装程序包装在一起,然后在提取后出现Splash屏幕. 其他解决方案 您可以尝试WIX创建安装程序.有wixui_featuretree和wixui_mondo,它们是GUI选项,旨在允许用户自定义包装运行时安装的功能. 其他解决方案 我想您想使用Window
我有一个用于我的VS2008 C#应用程序的部署项目.安装我的应用程序的新版本时,我想确保使用安装程序中包含的文件更新文件. 我希望我的安装程序自动删除安装应用程序的任何旧版本.为此,我遵循此过程(还描述了>这里): 将removeviousversions设置为true 将DentectNewerInstalledVersion设置为 true 增量版本 安装程序 选择是更改productode 对于组件,我确保将汇编设置为更高版本: [assembly: AssemblyVersion("1.0.*")] 除了我的配置文件(XML文件)外,所有内容都按预期工作.由于我找不到"版本"这些文件的方法,因此如果文件已在目标计算机上进行了修改,则无法确保它们已更新. 有什么方法可以做到这一点? 更新:我已经尝试了方法/解决方案/解决方法在这里 将文件直接包含在一个 项目以下项目 属性:"构建动作 - >内容 文件"和"复制到输出目录 - >
您认为,MSDEPLOY软件包是给最终用户在其系统上安装网络应用程序的一个不错选择.它如何与使用MSI文件安装Web应用程序的体验进行比较? 是否有人尝试过将MSDEPLOY软件包包装在MSI软件包中?它可以工作吗? 解决方案 MSDEPLOY被描述为一种工具,可以帮助机器之间同步网站,这与AppCenter用来复制良好的主机为许多计算机的方式一样. Windows Installer(MSI + WIX Customactions for IIS和SQL Config)旨在将软件包应用于在交易中修改状态的计算机.它遵循更传统的包装软件模型. 这些是配置计算机问题的两种不同方法.每个要求都围绕不同的要求进行了优化. msdeploy =复制机器状态. MSI =应用交易的更改. 您可以将MSDEPLOY扔进MSI吗?大概.它可以很好吗?也许,如果您忽略了有关交易的部分.在我看来,这是关键区别.在您要声明要分发的配置并将其完全应用或根本不应用的环境中 如果您的计
MSI存储未来卸载任务的安装目录. 使用INSTALLPROPERTY_INSTALLLOCATION属性(即"InstallLocation")的作品,只有安装程序在安装过程中设置了ARPINSTALLLOCATION属性.但是这个属性是可选的,几乎没有人使用它. 如何检索安装目录? 解决方案 使用注册表密钥跟踪您的安装目录,这样您可以在升级和删除产品时引用它. 使用wix i将创建一个在安装目录的直接标签之后创建键的组件,声明 其他解决方案 我将使用MSIGETCOMPONENT() - 您需要ProductID和一个ComponentID,但是您可以获得通往已安装的文件的完整路径 - 只需选择一个进入安装目录的位置的文件即可.如果您想获得任何随机MSI的目录的值,我不相信有一个API可以让您这样做. 其他解决方案 我将尝试使用installer.openproduct(productCode).这将打开一个会话,然后您可以在该会议上要求属性
我们有一个供应商应用程序,该应用程序通过ClickOnce扩展和部署.供应商还提供了一个"部署管理器",该管理器将应用程序和任何扩展程序包装到我们发布到Web服务器的ClickOnce部署中.我提到了此细节,因此我们对改变部署过程并没有真正的控制. 因此,我们将应用程序发布到我们的Web服务器.效果很好,更新正常工作.加载应用程序时,如果用户想更新应用程序,它将提示他们. 我们的几个客户要求使用" MSI安装程序".他们的用户会经常切换桌子,这要求他们重新下载应用程序,因为它保存到本地用户文件夹而不是漫游配置文件. 对我们来说非常重要的是,更新会尽快出现.因此,要求客户以MSI表单下载最新更新并使用组策略部署不在图片中. 因此,作为妥协,我们希望能够提供可以通过组策略出门的初始安装,但要求通过Web进行更新. 这是可能的,我该如何实现? 有一个对我在MSDN上的问题,但是关于如何实现它没有很好的描述. 我需要汇总哪些文件/目录才能构建初始离线安装
整个故事: 我创建了一个Fancy .NET程序,该程序具有由Visual Studio Installer(VSI)创建的安装程序. VSI创建2个文件(setup.exe和myProgramSetup.msi).我了解需要两个文件的原因,但是,我只想向用户分发一个可执行的安装程序.我不希望他们看到2个文件,必须在它们之间进行选择. 为了做到这一点,我将2个文件合并为使用iexpress的自提取存档(如此答案所示:合并MSI和EXE ).但是,这很好,但是,创建的自提取档案具有一个丑陋的图标和令人困惑的文件信息(文件描述为" Win32橱柜自提取器",其后43个空白空间). 我需要用我的自定义替换图标,然后更改一些文件属性,例如"描述","公司"等.我想自动完成此操作作为构建步骤命令行/控制台实用程序将很棒. 我现在已经搜索了一段时间,只能找到一个完全可以做我想要的程序(Resourcetuner Console:有人知道一种更好的方法来实现我想要的东西,或者知道可以
我们有一个多服务器系统我们需要在客户端网站上安装.我想整理一个可以: 的脚本 关闭远程机器上的服务 在几台远程机器上卸载软件 安装.msi文件归档几台远程计算机 我在 psexec 和 wmic 做点2和#3. 似乎必须有一种更简单的方法,而不必诉诸 powershell . 解决方案 首先,请参阅此线程,以获取 wsh远程:那么,也许您可以尝试使用 vbscript库,例如 vbsedit (我不想提出软件建议,但是我认为允许它是因为我没有附属,并且想建议它解决问题): 这是一个远程安装软件的脚本: ' Install Software on a Remote Computer Const wbemImpersonationLevelDelegate = 4 Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator") Set objConnection = objwbemL
允许使用什么BizTalk应用程序,编排,模式,地图更改被迫通过管理员执行控制台导入MSI,而仅在GAC中安装DLL? 通过控制台力量导入以停止编排并终止实例,但安装在GAC中只需要重新启动此应用程序的主机即可.因此,有时不停止生产环境上的一切会很方便. 解决方案 如果您只是在生产中添加DLL而不将其导入BizTalk,则存在很大的风险. ,如果对于下一次部署,您会从prod生成备份MSI,它将包含BizTalk数据库中的旧DLL,而不是GACCED版本.这可能意味着,如果您不得不使用该MSI回滚,您将失去补丁.当另一家公司的某人做补丁时,我们已经经历了这一点,不仅没有将更改检查到源控制中,这就是为什么我们必须首先退缩,因为该更改不在发布包中. 必须在必须退回部署后的另一种情况是,您先前使用了以前用于部署的MSI(预点键),而忘记重新应用该补丁程序.同样,这将引起您的问题. 如果存在问题,并且BizTalk中的图式或地图与GACCED版本不匹配,则会使诊断
我正在创建一个设置项目.客户端希望拥有已经包含.NET Framework 3.5 SP1的设置.EXE文件. 但是,当我右键单击设置项目时|特性 在"属性页面"上有一个称为"预奎斯特人"的按钮. 您有3个选择: 供应商的网站 与我的应用程序相同的位置 从以下位置下载. 但是,客户不想下载任何东西.因此,我需要用setup.exe包装. 有什么方法可以做到吗? 如果包含.NET框架? 非常感谢您的建议, 解决方案 The full .NET 3.5 SP1安装程序是231 MB,它很大,可以在光盘上包含.如果您想走这条路线,则如果仅在一次性场景中适用于单个客户端,则可以在其网络上的某个位置将所有预reqs粘贴在文件共享上,并使用"从以下位置下载先决条件"选项. 其他解决方案 是好指南. 其他解决方案 您看到我猜想了一些.net的东西后,开发人员可以告诉"用户"嘿蛋糕只有28meg. 不好,这仅适用于安装程序. 嘿,其他人都知道
我一直在评估可用于Windows应用程序的广泛安装和Web部署解决方案.我将在这里澄清(没有太多细节,这些工具已在其他问题中涵盖)我对选项的理解: nsis - 免费的工具,生成设置的可录取物.小二进制.专业的,有时是钝的,脚本语言. inno setup - 用于设置执行程序的免费工具.各种二元压缩方案. Pascal脚本引擎. 如果我错过了,请告诉我. 并在stackoverflow上发现了这些技术的一些有用的讨论: 最佳简单安装系统 /li> Windows安装程序的最佳选择 clickonce 的替代方案 我曾与其中一些解决方案以及少数专有内部安装解决方案合作.他们主要关注包装安装,并为开发人员提供访问运行时间环境的框架.随着Web部署和自动软件更新的日益增长的要求,我希望在开发人员之间在软件的Web交付框架和随后的更新框架上找到更多共识,我并没有真正发现这一共识.当然有可用的解决方案(ClickOnce,clickTrough,install
我认为这会在网上的某个地方,但我无法谷歌搜索: 鉴于创建MSI软件包所涉及的复杂性(与NSIS,Innosetup等)相比,要经历所有混乱的理由是一个令人信服的理由(使用MSVS的Crappy Setup Project Project Project Wizard,学习一个全新的Langauge/EcoSystem只是为了制作MSI安装程序,只是为了制作安装程序(WIX),或支付大量许可费(安装罩)? 除了显而易见的 msdn page ,例如:) 解决方案 我认为所有情况都没有一个主要优势.这是我喜欢的东西,与其他类型的安装程序: 安装逻辑和代码包含在数据库中,该数据库的格式为可访问的格式. 调试时我非常喜欢这个.您可以直接使用像Orca这样的工具(免费数据库编辑下载),而不是重建安装程序,而是直接编辑数据库,然后再次运行安装以测试您的更改.更新您的自定义代码,暂时调节某些内容,更改操作顺序,无论您需要做什么. 修补.安装程序服务及其相应的工具知道如何创建
使用Windows安装程序在我正在部署的产品中安装事件源时,我正在遇到错误. 我收到的错误消息以下是... 无法获得安装程序类型 c:\ temp \ program.exe组装. - > 无法加载一个或多个 请求的类型.检索 loaderexceptions属性 信息. 这是创建事件源安装程序的代码块... using System; using System.Collections.Generic; using System.ComponentModel; using System.Configuration.Install; using System.Diagnostics; namespace myapplication { [RunInstaller(true)] public partial class EventSourceInstaller : Installer { public EventSourceI
是否可以在我自己的应用程序设置上安装第三方应用程序? 假设我要出售一些应用程序,为了在客户端的计算机上运行我的应用程序,我还需要运行PostgreSQL.是否可以在我的设置中安装我的应用程序旁边? 我在这个主题上是如此新秀,并不真正知道从哪里开始. (我应该提到我对部署Windows应用程序特别感兴趣) 解决方案 所有商业软件都将采用可帮助您作为内置功能实现这一目标的方法.本质上,您将其全部包装在 setup.exe 启动器/bootstrapper/downloader中,如果需要安装,此可执行文件将在运行自己的先决条件组件(如果需要安装)之前安装您的先决条件. > 请参阅这些答案,以获取有关部署工具及其功能的更多信息: 如何创建Windows Installer /li> 简单列表部署工具的视图 产品使用? installshield,Wix,Wise,高级安装程序等 Burn 创建此类setup.exe启动器/下载器/bootstrapp