小编Tor*_*edt的帖子

如何使用WiX捆绑包安装.NET 4.5?

我需要将Microsoft .NET 4.5作为我的安装包的先决条件包含在内,我希望它尽可能自动化.然而,.NET应该不会被unistalling时取出.我想我已经阅读了关于如何使用DetectCondition和/或的所有内容InstallCondition,但我仍然没有把它做对; 它要么总是运行.NET安装,要么永远不运行它.

这是我的最新设置:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
     xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
     xmlns:netfx='http://schemas.microsoft.com/wix/NetFxExtension'>

  <!-- Define minimum .NET Framework version -->
  <?define NetFx45MinRelease = 377811?>
  ...
    <Chain>
      <PackageGroupRef Id="Netfx45FullPackage"/>
      ...
    </Chain>

    <PackageGroup Id="Netfx45FullPackage">
      <ExePackage Id="Netfx45Full" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes"
                  SourceFile="..\..\..\..\Environment\InstallerResources\Prerequisites\dotnetfx45_full_x86_x64.exe"
                  InstallCommand="/passive /norestart"
                  DetectCondition="NETFRAMEWORK45 &gt;= $(var.NetFx45MinRelease)"
                  InstallCondition="NOT REMOVE AND (NETFRAMEWORK45 &lt; $(var.NetFx45MinRelease))" />
    </PackageGroup>
Run Code Online (Sandbox Code Playgroud)

(出于某种原因,我必须定义NetFx45MinRelease自己,即使它应该包含在WixNetFxExtension中.)

如何正确设置?

.net windows-installer wix wix3.6

12
推荐指数
2
解决办法
2万
查看次数

ValueFromPipeline行为?

我有一个命令Get-Testdata,它从不同的源检索测试数据,并将这些数据存储为PSObject具有不同值的属性.然后将对象的总数存储为数组,以便于操作,排序,计算等.

我的问题是我希望能够将这些数据呈现为(颜色编码的)HTML,我为此编写了另一个命令Show-TestResults.输入参数如下所示

[Parameter(Mandatory=$true,Position=0,ValueFromPipeline=$true)]
[PSObject[]]$InputObject
Run Code Online (Sandbox Code Playgroud)

更新1

这个函数本身是非常基础的,它只是设置了一些参数ConvertTo-HTML,然后将对象传递给该命令:

$head = "<style>[...]" #styling with javascript etc
$header = "<H1>Test Results</H1>
$title = "Test results"
$InputObject | ConvertTo-HTML -head $head -body $header -title $title | Out-File $Filename
Run Code Online (Sandbox Code Playgroud)

END UPDATE 1

但是,当我尝试使用该ValueFromPipeline属性时,使用该调用

Get-Testdata [...] | Show-TestResults 
Run Code Online (Sandbox Code Playgroud)

仅显示数组中的第一个对象.但是,如果我改为调用命令

$td = Get-Testdata [...]
Show-TestResults $td 
Run Code Online (Sandbox Code Playgroud)

正如预期的那样呈现整个阵列.有人可以解释一下 - 并希望引导我纠正它吗?

powershell

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

如何防止具有相同UpgradeCode/Version的WiX捆绑包安装两次

我有一个与MSI一起打包的应用程序,它与各种必需的第三方工具一起制作成WiX软件包.我已经在MSI du中禁用了应用程序如何工作的修改和修复操作,要求在再次安装相同版本之前完全卸载.

当我单独运行MSI时,它按预期工作:安装程序无法运行两次.再次运行完全相同的Bundle时也是如此.但只需重建捆绑包(使用相同UpgradeCodeVersion),安装就会继续进行(这次要快得多),最终我在已安装的程序中重复输入.我真的想阻止它并使捆绑工作为MSI.

我已尝试在捆绑上设置各种条件; NOT WixBundleInstalled,WixBundleInstalled != 1等,但这些方法都似乎工作.

作为参考,这是bundle声明:

<Bundle UpgradeCode="{FAF9CBDD-BE89-4B18-9921-FD5B426B5B0C}" IconSourceFile="$(var.SolutionDir)Resources\product.ico" 
          Name="Product 4.4" Version="4.4.0.0" Manufacturer="My Company" DisableModify="yes" Condition="NOT (WixBundleInstalled = 1)">
Run Code Online (Sandbox Code Playgroud)

windows-installer wix

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

特定组件的"ICE38:组件安装到用户配置文件"错误

我正在尝试使用每台机器和x64架构设置在WiX 3.6中编写Windows Installer脚本.我有以下项目结构(缩短):

<Directory Id="ProgramFiles64Folder" Name="PFiles">
    <Directory Id="APPLICATIONFOLDER" Name="My Company">
      <Directory Id="ProductFolder" Name="My Product">
        <Component Id="MainComponent" Guid="" Win64="yes" KeyPath="yes">
            ...
        </Component>
        <Directory Id="DataFolder" Name="Data">
          <Directory Id="Machine" Name="Machine" >
            <Directory Id="MachinesFolder" Name="Machines">
              <Component Id="Machine1" Guid="{74341536-72DF-48C3-95E8-2851D9FA8318}" Win64="yes" KeyPath="yes">
                        ...
              </Component>
            </Directory>
            <Directory Id="TemplateFolder" Name="Template">
              <Component Id="TemplateFiles" Guid="{A0D0C225-D604-4B84-971D-41687A30EC36}" Win64="yes" KeyPath="yes">
                <File Id="Template1.rsbak" Source="$(var.SolutionDir)bin\Release\File1.rsbak" />
                            ...
              </Component>
            </Directory>
          </Directory>
        </Directory>
      </Directory>
    </Directory>
</Directory>
Run Code Online (Sandbox Code Playgroud)

问题是我ICE38: Component TemplateFiles installs to user profile. It must use a registry key under HKCU as its KeyPath, not a …

windows-installer wix wix3.6

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

标签 统计

windows-installer ×3

wix ×3

wix3.6 ×2

.net ×1

powershell ×1