使用静默安装程序(.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字节.
我正在尝试使用包含空格的值在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提示符上运行相同的命令,那么它就像一个魅力.
我试过的选项:
powershell windows-installer installshield command-line-arguments 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作为解决方案.我想知道是否有人遇到过这个问题并提出了更好的解决方法/解决方案.谢谢!
我看到这个问题的三个解决方案:
我目前倾向于选项3,虽然选项1可能是我原来问题的最佳答案.有什么想法吗?
我运行了这样的安装:
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) 我需要从我的代码中运行msiexec卸载:
MsiExec.exe /I{A52EEC0E-D0B7-4345-A0FF-574804C7B78A}
Run Code Online (Sandbox Code Playgroud)
但这是要求确认(是/否).我怎么能避免这种情况?
在静默模式下使用msiexec安装.MSI文件时,是否可以将其自动化,以便在安装失败时回滚到以前的版本?假设在安装时已经安装了较旧的应用程序版本.
我安装了一个测试应用程序,它有两个功能(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属性值.我是否需要设置任何其他属性才能删除特定功能?
任何帮助表示赞赏.提前致谢 !!!
我想将msi文件转换为exe文件.当我使用msnxec的qn选项运行msi文件时,我的软件安静地安装.但现在我想将该msi文件转换为.exe文件,并且该exe文件使用msiexec/i"msi文件路径"/ qn选项运行msi文件,任何想法如何操作.
用于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) 我们正在尝试使用自定义.NET Bootstrapper通过我们的WiX安装程序有选择地在MSI包中安装功能.
注册到PlanMsiFeature活动后,我们认为我们可以访问MSI中的功能,并根据预设条件排除某些功能.但是,该事件似乎从未被调用过.有没有人设法成功使用此活动?
非常感谢.
msiexec ×10
wix ×5
c# ×2
bootstrapper ×1
command-line ×1
installer ×1
powershell ×1
python ×1
registry ×1
uninstall ×1
windows ×1
windows-10 ×1