MSI安装程序在安装期间调用许多预定义的操作 - FindRelatedProducts,CheckVersion等.在不同的安装类型和序列期间调用不同的操作:admin,unattended,user,execute,deffered ...和自定义操作排队之前'或'在'这些预定义的MSI操作之后'.
是否有完整的列表可以显示在不同的安装模式和序列中调用MSI操作的确切顺序?理想情况下,简短地评论每个操作的作用以及将自定义操作插入的良好实践.
我有一个安装应用程序的msi文件.我需要在安装开始之前知道该应用程序的产品名称.
我尝试了以下方法:
{
...
Type type = Type.GetType("Windows.Installer");
WindowsInstaller.Installer installer = (WindowsInstaller.Installer)
Activator.CreateInstance(type);
installer.OpenDatabase(msiFile, 0); //this is my guess to pass in the msi file name...
...
}
Run Code Online (Sandbox Code Playgroud)
但现在?Type为null,这会引发错误.我在哪里传递MSI文件的名称?
感谢任何提示和评论.
我正在寻找一种方法,尽可能简单地向我们的客户提供我们软件的预览或演示版本.
我们目前正在开发的软件是一个非常大的项目.它由客户端环境,应用程序服务器,各种数据库,Web服务主机等组成.项目是逐步开发的,我们希望以一到两个月的间隔发送这些位.第一批交付将不会用于生产.他们有一个演示的目的,鼓励客户提供反馈.
我们不希望给客户带来安装和配置系统的负担.总而言之,我们正在寻找一种方法来减轻部署,安装和配置的痛苦.
我想到的是使用虚拟化技术来预安装和预配置具有所有必要组件的虚拟机.我们的客户只需安装虚拟映像并运行应用程序.
我想听听那些使用这种技术的人.我想也有一些困难.特别是,安装的操作系统的许可问题呢?也许有可能让虚拟机在一段时间后过期.
那里有经验吗?
我在这里遇到了一个我正在使用的MSI部署的问题(使用InstallShield).我们有一个在后台运行的程序需要按用户运行,它需要在没有用户干预的情况下自动启动.
问题在于组策略对象/Active Directory(GPO/AD)部署,应用程序在任何人登录之前在SYSTEM上下文中启动,而不是作为即将登录的用户.应用程序每个用户只能运行一次,似乎SYSTEM进程阻止了USER进程启动.这意味着在将软件部署到用户之前,需要重新启动PC两次.我们该如何制止这个?
基本上当前的工作流程是:
这适用于已发布的应用程序和交互式MSI安装 - 它只是"已分配"的应用程序似乎有问题.由于步骤3发生在SYSTEM上下文而不是用户上下文中:(
理想情况下,我让开发团队修补EXE文件以防止在SYSTEM上下文中启动,但这是一个发布周期,我正在寻找一个基于安装程序的临时解决方案.
(我不知道Installscript ......所以我猜测如果没有我可以使用的原生InstallShield东西,可能就是VBScript.)
我目前正在开发一个Web应用程序,我需要以表格方式显示一些字段.例如:
------------------------------------------------------ First Name: John Last Name: Smith Age: 26 ------------------------------------------------------ Town: Madrid Country: Canada Colour: Blue ------------------------------------------------- etc -------------------------------------------------
这些字段需要对齐(在上面的例子中,'Town'应该正好在'First Name'之下,'Country'应该在'LastName'之下等等).我正在考虑使用一个html表(并在每个单元格中放置一个fieldname/value),但在我在这个网站上阅读的所有内容之后,看起来我应该使用css,因为我想要显示的数据不是真正的表格.我只是希望它看起来像表格.我找不到用css做这个的简单方法.有任何想法吗?
我有一个Ms-Access文件(.mdb).我想将它作为一个软件分发,以便用户可以使用它,甚至没有MS-Access.So基本上我想将.mdb文件转换为.exe文件它可以安装在客户端机器上.但我检查了一下,我发现它是不可能的.为此,我们需要使用一些安装程序,如Wise或InstallShield向导.可以使用visual studio .net部署包完成此分发吗?
自定义操作配置如下:
自定义操作名称:MyCustomAction
VBScript文件名:
<PathVar01>\MyFolder\MyVBSfile.vbsScriptFunction:MyFunction
返回处理:同步(检查退出代码)
脚本执行:立即执行
它通过以下InstallScript代码执行:
result = MsiDoAction(ISMSI_HANDLE,"MyCustomAction");
Run Code Online (Sandbox Code Playgroud)
当安装程序在InstallScript中到达该行时,安装程序会显示错误警告,说明:
"错误1720.此Windows Installer程序包存在问题.无法运行此安装所需的脚本.请与您的支持人员或程序包供应商联系."
MsiDoAction返回的结果代码是'1603',根据winerror.h,它是:
//
// MessageId: ERROR_INSTALL_FAILURE
//
// MessageText:
//
// Fatal error during installation.
//
#define ERROR_INSTALL_FAILURE 1603L
Run Code Online (Sandbox Code Playgroud)
为什么会这样?我开始怀疑文件是否正确包含在内.然而,我指向正确的文件,我已经尝试通过InstallShield支持文件包含VBS,认为这将确保文件与设置一起出现,但结果相同.
我从我们的一个客户那里得到了一个错误,并且认为问题在于MSVCR80.DLL v8.0.50727.3053 - 这是我在任何地方都找不到的版本,但谷歌搜索发现了大量其他崩溃报告.
我系统上的最新版本(以及其他版本)是8.0.50727.1433,Microsoft Visual C++ 2005 SP1可再发行软件包(x86)仅版本8.0.5027.762(目前与我们使用的合并模块相同)
是否有"官方"链接来获取此更新?它是否与任何其他Microsoft产品捆绑在一起?
编辑:请不要通过电子邮件发送给我,我正在寻找SxS安装.
编辑2:该死的,毕竟这不是问题:(
我正在尝试在DELL optiplex桌面GX600系列上安装Windows服务器操作系统,在安装过程中,我要求在第一步中选择:1)Windows 2008 X86架构或2)Windows 2008 X64架构
现在,我如何确定构建戴尔桌面的架构以及我应该选择哪种操作系统安装选项?
.net ×2
installation ×2
architecture ×1
c# ×1
c++ ×1
css ×1
database ×1
deployment ×1
dll ×1
installer ×1
ms-access ×1
nant ×1
vbscript ×1