Articles of windows installer

数据包被捕获后会发生什么?

我一直在阅读网卡捕获数据包后发生的事情,而我越读越多,我就感到困惑。 首先,我已经阅读了传统的网卡捕获数据包之后,它被复制到内核空间的一块内存,然后到用户空间的任何应用程序,然后在数据包的数据。 然后我读了关于DMA的信息,NIC直接将数据包复制到内存中,绕过CPU。 那么是网卡 – >内核内存 – >用户空间内存stream量仍然有效? 另外,大多数NIC(如Myricom)是否使用DMA来提高数据包捕获率? 其次,RSS(接收端缩放)在Windows和Linux系统中的工作是否类似? 我只能在MSDN文章中find有关RSS如何工作的详细解释,其中讨论了RSS(和MSI-X)如何在Windows Server 2008上工作。但RSS和MSI-X的相同概念仍然适用于Linux系统, ? 谢谢。 问候,Rayne

在Linux机器上创build一个自解压zip压缩文件

由于一些我不会涉及的限制,我必须在Linux机器上创build一个自解压的ZIP压缩文件。 生成的压缩文件只能在Windows上执行。 这是可能吗? 如果是这样的话,什么工具可以完成这项工作 背景:当用户从我的Linux机器上下载一个安装包时,我需要安装程序包预先填充一个特定的密钥。 我只知道在运行时的密钥; 我的想法是用这个键编写一个简单的.xml文件,然后用.xml文件将.msi安装程序压缩到一个自解压的压缩文件中,然后将该文件发送到浏览器。 如果你对如何实现这个目标有另外的想法,我也很乐意听到

使用WiX生成和安装Typelib

在询问Visual Studio如何注册一个COM库之后 ,很明显,VS为COM注册做了两件事情: 注册COM库 创build并注册一个types库 Visual Studio似乎使用regasm.exe执行此注册。 对于第一部分(直接COM注册)使用tallow或heat (WiX 2.0或WiX 3.0)似乎得到正确的所有基本COM注册信息。 然而,牛油/热似乎没有做的是build立一个types库安装。 使用WiX安装程序和regasm.exe创build自定义操作是可能的,但是对于基于Microsoft安装程序的安装程序,调用自定义操作不是最佳实践。 经过进一步的研究,看起来像msi有能力在安装时生成types库。 实际上,WiX似乎对它有直接的支持! 在一个文件元素中,你可以添加一个Typelib元素。 实际上, wix上的一篇文章有一个用Interface元素填充TypeLib元素的例子。 看起来界面元素至less有两个必需的属性: ID 名称 Larry Osterman谈到接口的其他部分,一般需要注册TypeLib ,而这个接口条目似乎负责单独的部分。 拉里说,我们需要指定ProxyStubClassId32为“{00020424-0000-0000-C000-000000000046}”,所以我们可以很容易地添加。 从哪里去,什么填写各种界面元素让我难住。 我已经提前将TypeLib元素添加到我的wix文件,并成功编译。 对于如何设置界面元素,我有点无知。 我们需要做些什么来正确地填写TypeLib元素,以及我可以使用哪些应用程序或工具来获取它? wcoenen下面的答案看起来很有希望…我会试试看。 更新:发表我的最终解决scheme作为答案。

寻找灵活的Windows安装程序产品与强大的脚本语言

我工作的公司在过去的几年中一直在使用某个安装程序(它的名字与我们切换的另一个安装程序产品非常相似)。 我最近的任务是重新安装安装程序,充实所有导致各种问题的小错误和边缘情况。 我发现产品如此僵化和笨重,我真的相信,如果我们继续使用这个产品,我们永远不会有一个不错的抛光安装程序。 使用的脚本语言是非常有限的,只能通过他们的IDE工作(这是一些超过devise的文本编辑器,其中的ENTER键不能做你认为应该),文件不是纯粹的ASCII格式保存,但一些自定义乱码。 他们的全部重点是使用他们的devise师,这当然混淆了脚本中的所有自定义逻辑。 他们的插件收集是最暗淡的说,最好的产品本身有很多的错误。 (不要害怕,包装很漂亮) 我正在寻找一个安装程序产品,它具有足够强大的脚本语言和工具包(或插件)来处理我们的安装,包括创buildWindows服务,Internet下载,IIS站点,SQL服务器数据库以及所有其他常见的东西。 如果这是我要求的一件事情,那么这是一个强大的脚本语言,可以让我控制。 它不一定是漂亮的或有一个devise师。

Visual Studio 2008安装程序项目 – 自定义操作不触发

我似乎无法获得自定义操作。 我可能做错了。 这是我想要做的: 我想在运行可执行文件的应用程序安装(Visual Studio Installer项目)中运行自定义操作。 可执行文件只是执行一些system.io文件拷贝任务,而且我已经确认,可执行文件本身运行时可以完美运行。 我创build了安装程序项目 将该exe文件添加到应用程序文件夹 去自定义操作,并将该exe文件添加到提交步骤 InstallerClass被设置为true 跑安装程序,没有得到我期待的结果。 所以我添加了一行来写入Windows日志。 再次运行安装程序后,在Windows日志中查看,看起来没有运行。 添加了一个debug.break exe文件Unisntalled /重新安装我的安装程序,什么都没有发生。 我终于坐下来看着进程,并确认exe永远不会被执行。 有什么想法吗? 目标系统:Windows XP,Vista Visual Studio版本:2008 Sp1语言:VB.NET目标框架:2.0 优秀。 我想我已经越来越近了,感谢您发布的代码。 我把它转换为VB,我得到这个错误:无法findmyexename.savedstate。 我假设我应该把东西传递给你发布的潜艇,但我不知道是什么。 (顺便说一下这是一个控制台应用程序)我添加了一个对System.Configuration.Install.dll的引用,这里是我的代码: 导入System.ComponentModel 导入System.Configuration.Install _ 公共类ApplicationInstaller inheritance安装程序 公共重载覆盖子提交(ByVal savedState As IDictionary) “做一些承诺的工作 The_Sub_I_Want_To_Run() 结束小组 公共重载覆盖子安装(BYVAL stateSaver作为IDictionary) '做一些安装工作 结束小组 公共重载覆盖Sub Uninstall(ByVal savedState As IDictionary) '做一些卸载工作 结束小组 末class 我没有这样说。 我从来没有使用过安装程序类。 […]

我想检测是否已经在用户的系统上使用WIX安装了特定的Microsoft修补程序。 什么是最简单的方法来实现呢?

我一直在读这个,但我开始怀疑这是越来越多的工作。 我以为我将能够简单地扫描registry中的问题的修补程序。 在尝试这样做的过程中,我了解到修补程序ID不再存储在registry中。 相反,MSFT鼓励人们通过他们的Windows Update API。 显然,WIX并不支持Windows Update API。 这是否意味着我需要使用自定义操作,与Windows Update API交互,将结果返回给WIX,然后使用该结果控制代码stream?

WiX入门build议?

我find了一个WiX的教程 ,但它真的很啰嗦,似乎比我想要的更多。 什么是快速入门的最佳方式? 我的最终目标并不复杂:安装ISAPIfilter的安装程序。

WIX安装程序:数字签名Bootstapper exe未能安装

我无法使用数字签名的WIX安装程序bootstrapped exe继续安装。 以下是突出显示问题的日志摘录。 [39B8:26D4] [2017-09-04T20:03:31] i371:更新registry项:SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall {c6dca553-993e-473c-be4b-8ffa184cd19f},resume:Active,restart initiated:不,禁用简历:不 [3904:3A84] [2017-09-04T20:03:31] i336:获取容器:WixAttachedContainer,复制来自:F:\ Digital Signature \ MyApp.exe [3904:3A84] [2017-09-04T20:03:31] i000:将stringvariables'WixBundleLastUsedSource'设置为'F:\ Digital Signature' [3904:19F4] [2017-09-04T20:03:31] e000:错误0x80070001:无法从容器中提取所有文件,erf:1:2:0 [3904:3A84] [2017-09-04T20:03:31] e000:错误0x80070001:无法等待操作完成。 [3904:3A84] [2017-09-04T20:03:31] e000:错误0x80070001:无法打开容器。 [3904:3A84] [2017-09-04T20:03:31] e000:错误0x80070001:无法打开容器:WixAttachedContainer。 [3904:3A84] [2017-09-04T20:03:31] e312:无法从容器中提取有效载荷:WixAttachedContainer到工作path:C:\ Users \ Admin \ AppData \ Local \ Temp {18826196-247C-4057-B849 -948AF1A2A7E5} \ […]

INSTALLLEVEL不安装function

我有两个function: <Feature Id='BaseProductFeatures' Title='Feature 1' Level='1'> <ComponentRef Id='WebAppVDirComponent'/> <ComponentRef Id='someVDirComponent'/> <ComponentRef Id='anotherWCFVDirComponent'/> <ComponentGroupRef Id='group_IMPORTFOLDERFILES'/> <ComponentGroupRef Id='group_WINSERVERFILES'/> </Feature> <Feature Id='SMSGWFeature' Title='Feature 2' Level='2'> <ComponentGroupRef Id='group_SMSGWWEBAPPFILES'/> </Feature> 在安装之前,我使用自定义操作将INSTALLLEVEL更改为2: [CustomAction] public static ActionResult ChangeInstallLevel(Session session) { session["INSTALLLEVEL"] = "2"; return ActionResult.Success; } 值被设置,但function2(SMSGWFeature)没有得到安装。 这是为什么? 我没有看到ComponentGroupRef中的任何组件,group_SMSGWWEBAPPFILES,安装在我期望看到它们的目录中。但是,如果将function2级别(SMSGWFeature)设置为1,则安装程序将工作。

wix补丁PYRO0103:系统找不到文件

我曾尝试为我的应用程序构build一个补丁。 我需要replace两个文件,仅此而已。 使用引导程序获得了文件,但是当卸载引导程序时,文件已经消失了,而不是被旧的(当然)取代。 我添加Keypath = yes“到我的应用程序包(旧的和新的),希望这会得到我的问题解决,但没有。 我一直在遵循这个教程: http : //wix.tramontana.co.hu/tutorial/upgrades-and-modularization/patchwork 这是我从我的命令行运行时得到的问题: C:\Program Files (x86)\WiX Toolset v3.8\bin>pyro.exe C:\Work\Dev\App\ Patch\Patch.wixmsp -out Patch.msp -t Sample C:\\Work\Dev\App\Patch\dif f.wixmst 结果是这样的: C:\Work\Dev\App\Installer_3.6.2\AppInstaller\Manager.wxs(181) : error PYRO0103 : The system cannot find the file '..\App\3.6.2\Manager\Image s\sort_down_small.png'. C:\Work\Dev\App\Installer_3.6.2\AppInstaller\Manager.wxs(182) : error PYRO0103 : The system cannot find the file '..\App\3.6.2\Manager\Image s\sort_up_small.png'. C:\Work\Dev\App\Installer_3.6.2\AppInstaller\Manager.wxs(182) : error PYRO0103 […]