标签: msiexec

python 2.7 windows silent installer(.msi) - 命令行选项设置路径?

使用静默安装程序(.msi)在Windows上安装python 2.7时,是否有一个命令行选项将Python添加到路径环境变量,如GUI选项?

Python 3.5安装程序默认包含一个选项PrependPath = 0,但Python 2.7可以使用它吗?

https://docs.python.org/3/using/windows.html

看起来这里讨论过这个问题,但是没有Python 2.7的解决方案?

https://bugs.python.org/issue3561

编辑


这批命令摇滚!

setx\M PATH"%PATH%; C:\ Python\Python27; C:\ Python\Python27\Scripts"

但是setx会将存储的%PATH%字符串截断为1024字节.

python windows installer windows-installer msiexec

9
推荐指数
1
解决办法
1万
查看次数

msiexec的命令行参数如果包含空格则在powershell上中断

我正在尝试使用包含空格的值在installshield安装程序中设置公共属性.在运行MSI安装程序时,我在PowerShell命令提示符下使用以下命令.由于该值包含空格,因此我使用双引号来传递值

msiexec -i "myinstaller.msi" MYDIRPATH="C:\new folder\data.txt"
Run Code Online (Sandbox Code Playgroud)

它打破了命令,因为参数值C:\new folder\data.txt在字符串中有一个空格,new folder并导致msiexec的错误提示下面,这表明传递给msiexec命令的参数有问题:

在此输入图像描述

如果我在Windows默认命令shell提示符上运行相同的命令,那么它就像一个魅力.

我试过的选项:

  1. 使用单引号代替双引号
  2. 根据答案在参数中的空格前使用后退(')字符.

powershell windows-installer installshield command-line-arguments msiexec

9
推荐指数
2
解决办法
1784
查看次数

如何从msiexec命令行设置"取消选中"复选框?

我有一个msi(用WIX编写),它有一个绑定到自定义属性的复选框(称之为MY_PROPERTY).我想从命令行运行此msi,为此属性指定0(未选中)或1(已选中).我的脚本将确定适当的值(基于环境)并将该值注入msiexec命令行.我的命令行看起来像这样:

msiexec /i my_installer.msi MY_PROPERTY=$value
Run Code Online (Sandbox Code Playgroud)

其中$ value为1或0,具体取决于环境.问题是,无论我在命令行为MY_PROPERTY提供什么值,都会选中复选框(并且该属性将始终设置为1).取消选中复选框的唯一方法是不指定属性(保留未定义).应该注意,无论UI是否显示,都会出现这种情况(在上面的命令行中添加"/ quiet"不会改变这种行为).

这个msdn帖子似乎表明这是Windows安装程序中已知的"错误"(或者更确切地说,无论创作系统编写的是msi).建议使用post-build msi hack作为解决方案.我想知道是否有人遇到过这个问题并提出了更好的解决方法/解决方案.谢谢!

更新

我看到这个问题的三个解决方案:

  1. 从@Damien开始,让包装器脚本在其值为0时不将属性传递给msiexec.这会使脚本更复杂,并且可能会阻止我覆盖默认为"已检查"的复选框的值.
  2. 从@Michael Urman添加一个自定义操作,如果其值为零,则清除该属性.这使得msi更复杂,我将不得不为UI中的每个复选框添加这样的自定义操作.
  3. 另一个想法是简单地禁止在我们的msi安装程序中使用复选框,并使用单选框或下拉菜单代替"真/假"问题.虽然这限制了我们的安装程序的UI选项,但它允许包装器脚本保持简单,并且不需要自定义操作来"破解"属性.

我目前倾向于选项3,虽然选项1可能是我原来问题的最佳答案.有什么想法吗?

windows-installer wix msiexec

7
推荐指数
2
解决办法
8511
查看次数

当MSI日志文件显示"注意:1:2729"时,它是什么意思?

我运行了这样的安装:

  msiexec /i   Module.msi  /l*v msilog.log
Run Code Online (Sandbox Code Playgroud)

在生成的日志文件中,我得到了一堆消息,如: Note: 1: 2729.这是什么意思?

是否有一个rosetta-stone用于理解msi日志文件中所有这些消息的含义?

编辑:
这是msi日志文件的示例片段:

MSI (c) (D4:8C) [12:16:44:332]: Note: 1: 2729 
MSI (c) (D4:8C) [12:16:44:332]: Note: 1: 2729 
MSI (c) (D4:8C) [12:16:44:332]: Note: 1: 2729 
MSI (c) (D4:8C) [12:16:44:332]: Note: 1: 2729 
MSI (c) (D4:8C) [12:16:44:332]: Note: 1: 2729 
MSI (c) (D4:8C) [12:16:44:332]: Note: 1: 2729 
MSI (c) (D4:8C) [12:16:44:332]: Note: 1: 2729 
MSI (c) (D4:8C) [12:16:44:348]: Note: 1: 2729 
MSI (c) (D4:8C) [12:16:44:348]: Note: 1: 2729 
MSI (c) …
Run Code Online (Sandbox Code Playgroud)

windows-installer wix msiexec

7
推荐指数
1
解决办法
2254
查看次数

避免在MsiExec卸载中使用确认框

我需要从我的代码中运行msiexec卸载:

MsiExec.exe /I{A52EEC0E-D0B7-4345-A0FF-574804C7B78A}
Run Code Online (Sandbox Code Playgroud)

但这是要求确认(是/否).我怎么能避免这种情况?

c# msiexec

7
推荐指数
2
解决办法
7728
查看次数

Msiexec:在安装失败时自动回滚到以前的版本

在静默模式下使用msiexec安装.MSI文件时,是否可以将其自动化,以便在安装失败时回滚到以前的版本?假设在安装时已经安装了较旧的应用程序版本.

windows-installer installshield msiexec

7
推荐指数
1
解决办法
2259
查看次数

使用msiexec卸载特定功能

我安装了一个测试应用程序,它有两个功能(FirstFeature和SecondFeature).我想从应用程序中只删除一个功能(SecondFeature).我尝试在命令行中使用REMOVE属性.以下是用于删除SecondFeature的命令.

msiexec /x RemoveFeatures.msi REMOVE="SecondFeature" /L*V log.LOG
Run Code Online (Sandbox Code Playgroud)

但它正在卸载整个应用程序.日志文件显示默认情况下添加了REMOVE = ALL.这是日志文件的详细信息.

MSI(s)(24:B4)[17:39:05:231]:命令行:REMOVE = SecondFeature REMOVE = ALL

MSI(S)(24:B4)[17:39:05:231]:属性更改:添加REMOVE属性.它的价值是'SecondFeature'.

MSI(S)(24:B4)[17:39:05:231]:属性更改:修改REMOVE属性.它的当前值是'SecondFeature'.它的新价值:'ALL'.

它表示在卸载过程中覆盖了REMOVE属性值.我是否需要设置任何其他属性才能删除特定功能?

任何帮助表示赞赏.提前致谢 !!!

windows-installer wix uninstall msiexec

7
推荐指数
1
解决办法
2473
查看次数

使用命令行选项将msi转换为exe ...

我想将msi文件转换为exe文件.当我使用msnxec的qn选项运行msi文件时,我的软件安静地安装.但现在我想将该msi文件转换为.exe文件,并且该exe文件使用msiexec/i"msi文件路径"/ qn选项运行msi文件,任何想法如何操作.

c# command-line windows-installer msiexec

7
推荐指数
2
解决办法
8637
查看次数

使用WiX Toolset时,将值设置为0时,注册表项不会更新

用于MSI的WiX工具集未使用其预期数据更新注册表键值.如果缺少k:v,则添加它.如果k:v的数据设置为0,它会完全忽略它,这是这里的实际问题(我认为)

基本目标是在安装之前验证此注册表项值与预期数据值是否存在,如果必须添加/更新密钥,则会触发重新启动提示.

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
    <Product Id="*" Name="SampleInstaller" Language="1033" Version="1.0.0.0" Manufacturer="ACME" UpgradeCode="cf6248e9-d7da-4996-9b8e-90072e8510f6">
        <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Platform="x64"/>
        <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
        <Feature Id="ProductFeature" Title="SampleInstaller" Level="1">
            <ComponentGroupRef Id="ProductComponents" />
        </Feature>    
    </Product>

    <Fragment>
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder64">
        <Directory Id="INSTALLFOLDER" Name="SampleInstaller" />
      </Directory>
    </Directory>
    <Property Id="VKB_QUERY_HKCU" Secure="yes">
      <RegistrySearch Id="VkbVisibleHkcu"
            Win64="yes"
            Type="raw"
            Root="HKCU"
            Key="Software\Microsoft\TabletTip\1.7"
            Name="TipbandDesiredVisibility"/>
    </Property>
    <ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
      <Component Id="ShowVKB_Registry_HKCU" Guid="{97AB4B1D-C9C8-4B34-9328-FF8CA3ED8992}" Directory="INSTALLFOLDER">
        <RegistryKey Id="VKB_Registry_Key_HKCU" Root="HKCU" Key="Software\Microsoft\TabletTip\1.7" ForceCreateOnInstall="yes" ForceDeleteOnUninstall="no">
          <RegistryValue Id="VKB_Registry_Value_HKCU" Action="write" Type="integer" Name="TipbandDesiredVisibility" Value="1"/> …
Run Code Online (Sandbox Code Playgroud)

registry windows-installer wix msiexec windows-10

7
推荐指数
1
解决办法
672
查看次数

WiX .NET Bootstrapper - 功能选择

我们正在尝试使用自定义.NET Bootstrapper通过我们的WiX安装程序有选择地在MSI包中安装功能.

注册到PlanMsiFeature活动后,我们认为我们可以访问MSI中的功能,并根据预设条件排除某些功能.但是,该事件似乎从未被调用过.有没有人设法成功使用此活动?

非常感谢.

windows-installer wix bootstrapper msiexec

6
推荐指数
1
解决办法
1956
查看次数