草庐IT

热修补

全部标签

ruby - 猴子修补与。坚硬的。原则?

在一些个人项目中,我正在慢慢地从PHP5转向Python,目前我很喜欢这种体验。在选择走Python路线之前,我查看了Ruby。我从ruby​​社区注意到的是猴子修补既常见又受到高度重视。我还遇到了很多关于调试ruby​​软件试验的恐怖故事,因为有人包含了一个相对无害的库来做一些小工作,但却在没有告诉任何人的情况下修补了一些频繁使用的核心对象。我选择Python是因为(除其他原因外)它的语法更清晰,而且它可以完成Ruby可以做的一切。Python使OO的点击比PHP以往任何时候都好得多,而且我正在阅读越来越多的OO原则,以加深这种更好的理解。今晚我一直在阅读关于RobertMartin

ruby - 猴子修补 ruby​​ 类的推荐方法

我注意到在ruby​​中有两种常见的猴子修补类的方法:像这样在类中定义新成员:classArraydefnew_method#dostuffendend然后在类对象上调用class_eval:Array.class_evaldodefnew_method#dostuffendend我想知道这两者之间是否有任何区别,使用一种方法是否比另一种方法有优势? 最佳答案 老实说,我曾经使用第一种形式(重新开课),因为它感觉更自然,但你的问题迫使我对该主题进行了一些研究,结果如下。重新打开该类的问题在于,如果您打算重新打开的原始类由于某种原因此

javascript - Bower:如何修补包或应用覆盖?

在使用Bower添加到我的项目的包上覆盖或应用补丁的最佳方法是什么?在我的Sass文件夹中有一个vendor_overrides文件夹,我没问题,但是如何处理javascript?fork项目然后用bower安装它? 最佳答案 无论如何我都找不到用Bower来做这件事。就像你建议的那样。fork和托管自己的是一种选择。在What'sagoodmethodformonkeypatchingBowerpackagesinAngular?中提到另一种方法是使用difforiginal_filemodified_file>patch_fil

go - 添加/替换/修补标准库

我有一个(自己编写的)运行时库,多年来我在各种编程项目中使用过它。它在TurboPascal的早期以Pascal库的形式开始存在,此后通过C、Perl和Lua的化身取得了进展。我现在正在考虑将其移至Go(尤其是因为Go和Lua之间有一些有趣的相似之处)。Go的std库的很大一部分或多或少地做了我自己的库所做的事情(例如,标志包或正则表达式的东西),在这种情况下,我可以直接使用它们或编写一个小的接口(interface)层。问题始于那些包,在这些包中,我的模型与Go的模型差异太大,无法通过简单的接口(interface)层来隐藏差异(一个典型的例子是目录遍历函数)。我看到了两条前进的道路

c# - 通过 C# 或 PowerShell 卸载 Windows 修补程序

在我们公司,我们需要卸载安装在系统上的Windows修补程序。我已经完成了一个PowerShell脚本,它检查是否安装了指定的Update(通过KBArticleID查找),然后通过Textfile将此报告给服务器。有一个名为WUSA(Windows-Update-Standalone-Installer)的Windows内置工具,允许使用指定的KB-Article卸载更新-ID。问题是在Windows7、8.1和10下,WUSA-Tools只能在正常交互模式下工作,而不是在我们需要的安静模式下工作。我是这样跑的:wusa.exe/uninstall/kb:3114409/norest

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

我已经对此做了一些阅读,但我开始怀疑这是越来越多的工作。我想我可以简单地扫描注册表以查找有问题的修补程序。在尝试这样做的过程中,我了解到修补程序ID不再存储在注册表中。相反,MSFT鼓励用户使用他们的WindowsUpdateAPI。显然,WIX本身并不支持WindowsUpdateAPI。这是否意味着我需要利用自定义操作、与WindowsUpdateAPI交互、将结果返回给WIX,然后使用该结果控制代码流? 最佳答案 查看WMI的Win32_QuickFixEngineering类(class)。您必须编写一个自定义操作来对该类进

windows - 如何使用 Visual Studio 进行修补程序部署?

假设您有一个用VisualStudio编写的产品,并且您为您的客户和用户提供了该产品的安装程序。然后,您有一些小的更改要部署给您的用户;您不希望您的用户必须经历卸载过程、备份配置,然后再次重新安装产品并恢复配置。相反,您希望提供一个“修补程序”,用户可以简单地复制已安装的产品。使用VisualStudio或某些Microsoft工具,您将如何处理?我不知道这是否重要,但假设该产品1)部分是Web应用程序,2)部分是Windows服务,3)部分是Windows应用程序。 最佳答案 使用WiX.它可以处理所有这些事情(安装Web应用程序

c# - 修补应用程序

我需要为我的应用程序创建一个补丁例程,它真的很小,但我需要每天或每周更新一次xdelta和其他的是如何工作的?我读过那些,但我不太了解根本不应该提示用户 最佳答案 好的,这篇帖子在meta上被标记为给出的答案,所以我要权衡一下。xdelta是一个二进制差异程序,它不会为您提供完整的图像,而只会为您提供更改的内容和位置。文本差异的示例将在文本行前显示+和-符号,表明这些已在新版本中添加或删除。更新二进制镜像有两种方法:使用您自己的程序替换它或使用某种形式的包管理替换它。例如,Linux系统使用rpm等来推送软件包的更新。在Window

javascript - 我如何猴子修补对象的构造函数?

我想猴子修补这个“Controller”对象的构造函数。但是我如何猴子修补构造函数以便我仍然可以调用原始函数?这是我试过的。//originalfunctionController(){this._tag='div';}Controller.prototype.tag=function(){console.log(this._tag);}varc=newController();c.tag();//->'div',asexpected//patchattemptvaroriginal=Controller;Controller=function(){original.apply(thi

javascript - 猴子修补 XMLHttpRequest.prototype.open 和 "touching"参数

我正在尝试为在IE8兼容模式下运行的Intranet站点打补丁XMLHttpRequest.prototype.open但它一直抛出SCRIPT438:Objectdoesn'tsupportthispropertyormethod。奇怪的是...如果我先“触摸”arguments,即取消注释bar,它工作得很好!有谁知道为什么,如果触摸它确实可以在100%的情况下解决问题?varfoo=window.XMLHttpRequest.prototype.open;window.XMLHttpRequest.prototype.open=function(){//varbar=argume