我们目前使用WiX来构建我们的MSI文件,因此它是我使用过的唯一一个MSI构建器.我知道您可以在Visual Studio中本地构建安装程序.使用WiX和Windows Installer有什么区别,各自的优缺点是什么?
我正在使用Visual Studio 2008并为我的应用程序创建了一个安装项目.该应用程序具有高分辨率图标(适用于Vista).Visual Studio中存在一个错误,安装程序会创建一个带有低分辨率图标的桌面快捷方式.
我在Microsoft Connect(https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=338258)中记录了这个错误,最后得到了一个答案,即使用Orca编辑msi文件并替换图标.解决方案很好.
现在我想自动化该过程,所以我可以将它包含在我的构建脚本中.有没有办法做到这一点?
根据各种网页,orca.msi/orca.exe主要作为Windows SDK的一部分进行分发.
我安装了Visual Studio 2015 Professional Update 3.我安装了所有"通用Windows应用程序开发工具"组件,其中包括三个不同版本的Windows 10 SDK(10.0.14393,10.0.10586,10.0.10240).
但我在我的机器上的任何地方都找不到orca.msi或orca.exe.此工具是否已不再与Windows SDK一起打包?我是否还需要安装一个较旧的Windows SDK?是否有可选的Visual Studio 2015组件可以安装以获得Orca?
orca.exe的MSDN页面最终将我引导至Microsoft Windows SDK for Windows 7和.NET Framework 3.5 SP1的下载页面.这是包含orca.msi的最新 SDK,还是可以在较新的SDK中找到,例如Win7/.NET4.0或Windows 8或Windows 8.1 SDK?
我们的许多客户都可以访问InstallShield,WISE或AdminStudio.这些都不是问题.我希望有一些方法可以为我们的小客户提供免费的商业重新包装工具,这些工具和步骤可以自行更换文件.
只需要在压缩的MSI中替换单个配置文件,可以假定目标用户已经安装了Orca,知道如何使用它来自定义Property表(嵌入GPO部署的许可证详细信息)并生成MST文件.
免责声明:这与另一个问题非常相似,但该主题中的问题和答案都不清楚.
使用 plotly 导出静态图表时出现小问题。
Plotly 无法正确识别我安装了 orca,但仍然存在与缺少 orca 相关的错误。我尝试更改 orca 目录,但它仍然无法正常工作。任何人都知道出了什么问题?
我的代码:
import plotly.graph_objects as go
import orca
import plotly
#%%
fig = go.Figure(data=go.Candlestick(x=pricedata.index,
open=pricedata['bidopen'],
high=pricedata['bidhigh'],
low=pricedata['bidlow'],
close=pricedata['bidclose']),)
#%%
fig.show()
#%%
plotly.io.orca.config.executable = r'C:\Users\Kuba\AppData\Local\Programs\Python\Python37\Lib\site-packages\orca'
plotly.io.orca.config.save()
#%%
fig.write_image("images/fig1.png")
Run Code Online (Sandbox Code Playgroud)
这里描述了如何解决它,但它对我不起作用:
https://plot.ly/python/orca-management/#configuring-the-executable
orca 版本是 1.5.1
谢谢。
B.
编辑:
错误消息:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
c:\Users\Kuba\Documents\GitHub\frstalg\FXCM Stuff\LiveMyStrategyNOTEBOOK-20191017.py in
1
----> 2 fig.write_image("images/fig1.png")
~\AppData\Local\Programs\Python\Python37\lib\site-packages\plotly\basedatatypes.py in write_image(self, *args, **kwargs)
2686 import plotly.io as pio
2687
-> 2688 return pio.write_image(self, *args, **kwargs)
2689
2690 # Static …Run Code Online (Sandbox Code Playgroud) 在我们的构建过程中,目前有可能将非基于代码的文件(例如图像文件)添加到我们的Web项目中,但不包含在由WiX构建的MSI安装程序中.
为了帮助防止这种情况,我想在我们的WiX项目的AfterBuild目标中执行以下操作:
如果我启动Orca,我可以很容易地看到File表并计算,但我不知道如何从MSBuild自动执行此操作.是否有一些API或其他机制可以从MSI中获取此信息?
我不介意编写自定义MSBuild任务来提取MSI文件表计数.
我们有一个应用程序可以在启动时运行,允许在安装后更改许多已安装的文件.我们试图通过DISABLEADVTSHORTCUTS=1在Orca中设置属性来关闭自我修复模式.但是,设置此属性时不会创建任何快捷方式.我看到的所有信息表明我们应该能够使用DISABLEADVTSHORTCUTS=1set 创建"未公布的"快捷方式.有任何想法吗?
我已经验证,如果DISABLEADVTSHORTCUTS保持不变,则可以正确创建快捷方式.
如何对两个(或更多)MSI文件进行 " 内容比较 " 并查看文件内部实际不同的内容 - 而不是进行无用的二进制比较?(这显然只告诉我我是否正在处理同一文件的副本).
一些相关和典型的问题场景:
这是一个Q/A风格的问题,主题是比较已编译的MSI文件以确定存在哪些真正的"内容差异".
我想要的只是一个命令行工具,可以将文件从合并模块(.msm)提取到磁盘上.换句话说,我希望MSI可以使用相同的"管理安装"功能:
msiexec/a myProduct.msi TARGETDIR ="C:\ myInstallation"/ qn
以上只适用于msi(我可以告诉).因此,为了获得合并模块的相同效果,我正在尝试msidb.exe和orca.exe orca的文档说明:
可以从命令行指定许多合并模块选项...
从合并模块中提取文件
Orca支持三种不同的方法来提取合并模块中包含的文件.Orca可以提取单个CAB文件,将文件解压缩到模块树中,并在将文件合并到目标数据库后将其提取到源图像中...
提取文件
要从合并模块中提取单个文件,请使用
命令行上的... -x ...选项,其中是新目录树的所需路径.
指定的路径用作提取文件的根路径.所有文件都从嵌入在模块中的CAB文件中提取出来并放在指定的路径中.提取文件的目录布局基于合并模块的目录树.
这听起来像我需要的.但是当我尝试它时,orca只是打开一个编辑器(在我指定的msm上有信息)然后什么都不做.我尝试了各种命令行,通常从这开始:
orca -x theDirectory theModule.msm
我使用"theDirectory"作为我想要的任何空文件夹.就像我说的 - 它没有做任何事情.
然后我尝试了msidb,我做过的几次尝试看起来像这样:
msidb -d theModule.msm -w {storage}
msidb -d theModule.msm -x MergeModule.CABinet
在第一种情况下,我不知道要为{storage}放什么.在第二种情况下,事实证明文字字符串"MergeModule.CABinet"是必要的(它是保留名称).但是,提取的机柜不保留文件层次结构或"正常"文件名; 所以我不能用它来达到我的目的.
有人可以用命令行选项解释我做错了什么吗?有没有其他工具可以做到这一点?
我有一个安装程序,安装了一些组件,包括Windows服务,安装后它将启动使用CustomAction安装到系统上的服务.
卸载应用程序时出现问题,安装程序要求在继续之前关闭应用程序.

我创建了一个停止服务的自定义操作,我使用卸载操作安排了它.
但是在手动停止服务后按下确定错误对话框之前,它才会执行.
它在Win7上失败,但我在WinXP上测试了相同的MSI并且工作正常(在检查文件正在使用之前执行自定义操作)!
我正在使用VS2010安装项目来创建安装程序,但是在构建之后我没有修改它(例如使用Orca)的问题.
以下是InstallExecuteSequence表的内容:

我发现InstallValidate操作检查使用中的文件,但是我无法对我之前停止服务的自定义操作进行排序,因为它之前的InstallInitialize操作需要所有自定义操作都在它之后(ICE77 Evaluator)
如果在InstallInitialize操作之前或InstallFinalize操作之后对脚本内自定义操作进行了排序,则ICE77会发出错误.
我该怎么办,我应该使用MSIRESTARTMANAGERCONTROL属性来指定Windows Installer程序包是否使用FilesInUse对话框功能,但我需要通知用户其他正在使用的文件.
orca ×10
wix ×3
installer ×2
data-science ×1
extract ×1
icons ×1
install ×1
merge-module ×1
msiexec ×1
msitransform ×1
plotly ×1
python ×1
wix3 ×1