4

背景情報:

以前はVisual Studio 2010ベースのインストーラー プロジェクトがありましたが、インストールの状況はさらに複雑になり、2012 年にプロジェクトがなくなったため、WiX / InstallShield LEの学習を開始することにしました。

問題:

InstallShield LE が作成するMSIファイルは、私たちのニーズに合わせるにはあまりにも限られているようです -- (たとえば、Office 2007 の前提条件を確認すると、「Office 2007 以降」が必要であるというエラーが表示されていても、Office 2010 を使用している場合は失敗します。代わりにインストールされています -- どちらかをチェックすることはできますが、OR 条件を作成することはできません -- 氷山の一角に過ぎない多くの条件があります)。-- 一方、それが作成するブートストラップは、非常に素晴らしいものです!

一方、WiX は私たちの MSI を作成するのにうまく機能しましたが、Burn Bootstrapper は次々と頭を悩ませていました - ようやく動作するようになりました - しかし、現在クライアントのボックスでは、起動時に昇格に失敗しているだけではありません。 MSI ファイルを起動しますが、Symantec SONARによってウイルスとして検出され、インストールがブロックされています。(これは InstallShield LE では発生しません。コード署名証明書は、このプロジェクトには法外な費用がかかります。) 正直なところ、 Burn Bootstrapperは使用したくありません。

質問:

WiX Burn Bootstrapper に代わるものはありますか? InstallShield LE は使用できますか? NSISはどうですか?(Visual Studio 2010/Visual Studio 2012 とはまったく統合されますか?) -- 前提条件の Web インストールを実行して、インストーラーのファイル サイズを小さくしたいと考えています -- はい、.MSI も維持する必要があります。 (そうでなければ、この時点で完全な NSIS に切り替えるだけです)。

解像度:

Christopher Painter のソリューションを機能させることはできませんでしたが、提案された最良のアプローチであると信じているため、回答としてマークしました。私は解決策のかなり邪悪な小さなハックを使用しましたが、クリストファーのアプローチを機能させることができれば、それが進むべき道だと思います. できない場合は、私のハックで問題を解決できるかもしれません。

4

4 に答える 4

4

約 2,000 ドルで、InstallShield Professional にアップグレードできます。ただし、ISLE にほぼ満足しており、機能が 1 つだけで UI のカスタマイズがなくても構わない場合は、起動条件に関する問題を解決できます。

私のブログ記事を参照してください:

Windows Installer XML を使用した InstallShield の拡張 - 証明書

コンセプトは、2 つの Office バージョンを検索する WiX マージ モジュールを作成し、論理 or 条件で 2 つの検索を使用するエラー カスタム アクション (MSI タイプ 19) をスケジュールすることです。これを ISLE プロジェクトに追加すると、2 つのテクノロジが「ブレンド」されたことになります。

Professional には、PRQ (XML prereq file) エディターも用意されています。次に、VM で 30 日間の評価を再度スローしても、同じ結果が得られます。

WXS 側は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Module Id="ISWIX.REQUIRE.MSOFFICE20102013" Language="1033" Version="1.0.0.0">
        <Package Id="10ed24f2-6c07-4066-9f39-ba9f66c2667b" Manufacturer="ISWIX, LLC" InstallerVersion="200" />
        <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="MergeRedirectFolder"/>
        </Directory>
        <Property Id="OFFICE2010FOUND">
            <RegistrySearch Id="findOffice2010" Root="HKLM" Key="SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot" Name="Path" Type="raw" />
        </Property>
        <Property Id="OFFICE2010X64FOUND">
            <RegistrySearch Id="findOffice2010X64" Root="HKLM" Key="SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot" Name="Path" Type="raw" Win64="yes" />
        </Property>
        <Property Id="OFFICE2013FOUND">
            <RegistrySearch Id="findOffice2013" Root="HKLM" Key="SOFTWARE\Microsoft\Office\15.0\Common\ProductVersion" Name="LastProduct" Type="raw" />
        </Property>
        <CustomAction Id="ErrorNoOffice20102013" Error="[ProductName] setup requires Microsoft Office 2010 or 2013." />
        <InstallUISequence>
            <Custom Action="ErrorNoOffice20102013" After="AppSearch">Not OFFICE2010FOUND and Not OFFICE2010X64FOUND and Not OFFICE2013FOUND and Not Installed</Custom>
        </InstallUISequence>
        <InstallExecuteSequence>
            <Custom Action="ErrorNoOffice20102013" After="AppSearch">Not OFFICE2010FOUND and Not OFFICE2010X64FOUND and Not OFFICE2013FOUND and Not Installed</Custom>
        </InstallExecuteSequence>
    </Module>
</Wix>
于 2013-01-21T03:46:51.003 に答える
2

Burn に関してあなたが提起したすべての問題を解決したいと思います。問題についてバグを報告していただけると、非常に助かります。

それまでの間、WiX ツールセット v3.5+ を使用している場合は、setupbld.exe を参照してください。そのツールは、前提条件を起動してから単一の MSI を起動する小さな前提条件インストーラーを作成できます。

注: WiX ツールセットでの私たちの目標は、そのツールが Burn で行うことを最終的に包括することです。そのため、Burn が機能しないバグ レポートは大歓迎です。

于 2013-02-27T13:59:21.020 に答える
0

NSISは、 Visual&Installerと呼ばれるアドオンによってVisual Studio(2005/2008/2010および2012)と統合できます。InnoSetupもサポートされています。シンプルで安価なソリューションをお探しの場合は、これを選択してください(NSISとInno Setupはどちらも、巨大なコミュニティを持つフリーウェアシステムです)。

WiXの経験はありませんが、NSISとInno SetupはMSIファイルを作成できず、 EXEファイルのみを作成できます。

于 2013-01-21T07:23:32.797 に答える
0

結局、Install Shield LE は私にとって頭の痛い問題でした。私が最終的に行ったことは、正しい前提条件 (Windows Installer 3.1、.NET 4.0、および VSTO 2010) を備えた古い学校の 2010ダミー.vdproj ベースのセットアップ プロジェクトを作成することでした。 )。

私はそれを一度ビルドし、setup.exe を盗みました (アップグレード コードなどの他のものが現在の WiX ベースの .msi ファイルと一致することを確認しました。生成された .msi は、私が使用したかった名前と同じでした。等)。

その setup.exe を WiX ベースの .msi ファイルと一緒にパッケージ化すると、すべてがうまく機能します。これは間違いなく巨大なハックです。 Symantec SONAR アンチウイルスをオフにします。

毎回 .vdproj をビルドするわけではありません (ビルドは 1 回だけで、.msi ファイルを削除し、setup.exe を収集しました)。そのため、この方法で Visual Studio 2010 に将来依存することはありません。

ハックの少ないアプローチについては、@ Christopher Painterの回答を参照してください。彼のアプローチをうまく機能させることができれば、私のアプローチよりも彼のアプローチをお勧めします。

于 2013-01-25T22:14:17.400 に答える