如何使用完全独立的.NET4.0安装程序制作WIX3.5安装程序?

如何使用完全独立的.NET4.0安装程序制作WIX3.5安装程序?,wix,.net-4.0,visual-studio-2010,Wix,.net 4.0,Visual Studio 2010,继续前面的问题,我现在需要转到vs2010 我得到了WIX3.5的最新每周版本,2010年6月5日的版本 以下是我的安装程序中的相关行: <ItemGroup> <BootstrapperFile Include="Microsoft.Net.Framework.4.0"> <ProductName>.NET Framework 4.0</ProductName> </Boots

继续前面的问题,我现在需要转到vs2010

我得到了WIX3.5的最新每周版本,2010年6月5日的版本

以下是我的安装程序中的相关行:

      <ItemGroup>
        <BootstrapperFile Include="Microsoft.Net.Framework.4.0">
          <ProductName>.NET Framework 4.0</ProductName>
        </BootstrapperFile>
        <BootstrapperFile Include="Microsoft.Windows.Installer.4.5">
         <ProductName>Windows Installer 4.5</ProductName>
       </BootstrapperFile>
      </ItemGroup>

简单的答案是改变

<ItemGroup>
    <BootstrapperFile Include="Microsoft.Net.Framework.3.5.SP1" >
       <ProductName>.NET Framework 3.5 SP1</ProductName>
    </BootstrapperFile>
    <BootstrapperFile Include="Microsoft.Windows.Installer.3.1" >
       <ProductName>Windows Installer 3.1</ProductName>
    </BootstrapperFile>
</ItemGroup>

<Target Name="setup">
    <GenerateBootstrapper
        ApplicationFile="myproduct.msi"
        ApplicationName="myproduct"
        BootstrapperItems="@(BootstrapperFile)"
        Path="C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\"
        ComponentsLocation="Relative"
        OutputPath="$(cddir)"
        Culture="en"/>
</Target>


.NET Framework 3.5 SP1
Windows安装程序3.1


.NET Framework 4.0
Windows安装程序3.1


我通过进入机器上Visual Studio 2010的SDK引导程序目录(C:\Program Files\Microsoft SDK\Windows\v7.0A\bootstrapper)找到了答案。下面有一个项目列表,Wix可以阅读该列表并将其包含在引导中。每个文件夹中都有一个名为Product.xml的文件。查看了创建.NET 3.5安装程序的帮助后,我发现Product标记中的ProductCode属性似乎标识了boostrap元素的名称,因此当我将该值更改为C:\Program Files\Microsoft SDK\Windows\v7.0A\Bootstrapper\Packages\DotNetFX40\Product.xml中引用的值时,它起到了作用。

,谢谢我很高兴他们决定改变他们命令的结构,这是非常有帮助和必要的。我在VS2010中也遇到了这个问题,这个解决方案非常有效(谢谢!),除了外观问题,即感叹号仍然存在于引导包旁边。然而,安装程序完全使用引导包构建,并按预期进行安装。如果有人知道感叹号是什么引起的,以及如何消除它,请在这里加上。谢谢
C:\source\depot\project\vs2010\WiXSetup\WiXSetup.wixproj(68,5): warning MSB3155: Item 'Microsoft.Net.Framework.4.0' could not be located in 'C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\'.
<ItemGroup>
    <BootstrapperFile Include="Microsoft.Net.Framework.3.5.SP1" >
       <ProductName>.NET Framework 3.5 SP1</ProductName>
    </BootstrapperFile>
    <BootstrapperFile Include="Microsoft.Windows.Installer.3.1" >
       <ProductName>Windows Installer 3.1</ProductName>
    </BootstrapperFile>
</ItemGroup>

<Target Name="setup">
    <GenerateBootstrapper
        ApplicationFile="myproduct.msi"
        ApplicationName="myproduct"
        BootstrapperItems="@(BootstrapperFile)"
        Path="C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\"
        ComponentsLocation="Relative"
        OutputPath="$(cddir)"
        Culture="en"/>
</Target>
<ItemGroup>
    <BootstrapperFile Include=".NETFramework,Version=v4.0" >
       <ProductName>.NET Framework 4.0</ProductName>
    </BootstrapperFile>
    <BootstrapperFile Include="Microsoft.Windows.Installer.3.1" >
       <ProductName>Windows Installer 3.1</ProductName>
    </BootstrapperFile>
</ItemGroup>

<Target Name="setup">
    <GenerateBootstrapper
        ApplicationFile="myproduct.msi"
        ApplicationName="myproduct"
        BootstrapperItems="@(BootstrapperFile)"
        Path="C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\"
        ComponentsLocation="Relative"
        OutputPath="$(cddir)"
        Culture="en"/>
</Target>