最近、habrにAdobeインストーラーのバグ
に関する記事がありまし
た 。 この記事は、著者がバグを引用して、Adobeのような大規模で有名な企業でさえ、「インストールの容易さを忘れてしまうことがある」と結論付けたという事実に感動しました。実装は学生の手の届くところにあります。」 それから、これはAdobeインストーラーの開発者の庭の石であるように思えました。 したがって、私はリターンポストを作成し、インストーラー、その価格、およびいくつかのバグについて検討することにしました。 私はアドビとは何の関係もありません。
UPD:ローカライズの難しさについての写真を追加しました))
個人的な経験から。
あるマシンから別のマシンにInstallSHield 12を転送しました。 実際には、InstallSHield 12のアクティブ化/非アクティブ化はインターネット経由で実行されますが、非アクティブ化は自動的に実行されることに注意してください。 新しいマシンでInstallShieldをアクティブにできなかったため、再インストールは1か月遅れました。キーは別のマシンですでに使用されているというエラーを受け取りました。
InstallShieldのサポートとの対応は、失礼な語彙を使用しているアメリカ人の同僚が私たちに有利な状況を修正するよう依頼するまで続きました。 通信中、写真付きの美しいパンフレットが届き、InstallShieldの転送に問題がありますか? より柔軟な設定で新しいライセンスを購入してください!
そして、アンインストーラーが曲がって動作するのは誰のせいですか? 開発者?
この問題に対するアドバイス:状況がそれを必要とする場合、失礼であることが必要であり、ライセンスには多額の費用がかかり、その利点はゼロであると大声で宣言します。 または、条件が満足できる場合、新しいライセンスを購入します。
マルチプラットフォームおよびネイティブ。
簡潔にするため、インストーラーを作成するためのプログラムを「IDE」と呼びますが、これは最良の名前ではありません。 IDEは、2つのタイプのマルチプラットフォームとネイティブに分割できます。
マルチプラットフォーム -複数のプラットフォーム用の1つのプロジェクト。 これらは、InstallAnywhere、InstallBuilder、InstallShield Multiplatform、Install4jなどのIDEです。 表1に価格を示します。
ネイティブ-1つのプラットフォームファミリ用の1つのプロジェクト。 ほとんどの場合、Windowsファミリ用に作成されています。 たとえば、InstallShield 2010、InnoSetup、InstallAwareなど。 表2に価格を示します。
言うまでもなく、IDEの無料版と有料版は、天国と天国の両方で異なります。 これは開発者の仕事にはまったく訴えませんが、どちらにも賛成ではありません。
価格から、インストーラーは安くないと結論付けることができます。 IDEを作成し、それに基づいてインストーラーを作成する方が費用がかかる場合があります。
インストーラーのバグ。
Windowsから始めましょう。
1.ほとんどの場合(およびAdobeの場合)、WindowsインストールプログラムはWindowsインストーラー(.msi)に基づいており、他の製品と同様に独自のバグがあります。
2.インストーラーの開発時には、他の製品と同様にIDEが使用され、独自のバグがあります。
3.インストーラーがその男を行い、彼は間違いなくいくつかのバグをどこかに残します。 悔い改め、何度もやりました...
4.ライセンスがあり、これは非常に重要な問題です! もちろんすべての人向けではありません:)
マルチプラットフォームインストーラーの同様の状況。
ご覧のとおり、インストーラーのすべてのバグが開発者について語っているわけではありません。
たとえば、InstallAnywhere 2008のいくつかのバグを考えてみましょう。現在作業中です。 私はエンタープライズ版を持っています、それは約
4500ドルかかります。
これは、Javaプロジェクトインストーラーを作成するためのIDEです。 良いニュースは、インストーラーを開発するときに、Javaを最大限に活用できることです:)
この図は、標準のダイアログボックスの例を示しています。テキストがIDEに入力されると、スクロールがあります。 レーキはどこで入手できますか? 何らかの方法がテキストに動的に挿入され、それがユーザーにとって非常に長い場合、そのようなバグは開発者とテスターを通り抜けることができます... インストーラーの開発者にも罪悪感があります...

ユーザーには見えないアクションがあり、.batファイルなどを実行します。 当然、スペースの場合、.batファイルへのパスを引用符で囲む必要があります。 IDEは、保存時に最後の引用符を削除します。 開発者とテスターがスペースなしのパスに出会っており、ユーザーに大切なギャップがある場合は、熊手に乗ることができます。 前のバグが表面的なものであれば、バッチファイルは間違いなく必要なものを起動します。 誰が手を曲げましたか? インストーラーの開発者にも罪悪感があります...
.jarファイルにパッケージ化された開発者コードを実行するアクションがあります。 .jarファイルにMETA-INFフォルダーがある場合、コードは無視されます。 奇妙なことですが、この機能はドキュメントに記載されています...
eyeofhellは、ローカライズの問題に関するバグを思い出しました。 図では、「完全にアンインストールする」の代わりに「アンインストールが完了する」という翻訳があります

InstallAnywhereのバージョンごとに実行される重大なバグ。 インストールされたソフトウェアを説明するために、.xmlファイルが使用されます;「C:\ Program Files \ Zero G Registry \ .com.zerog.registry.xml」のように見つかります。 実際、ユーザーが最後のインストール/アンインストールダイアログで[完了]ボタンをクリックすると、このレジストリへの書き込みが発生するため、コンピューターを安全に再起動したり、別のインストーラーを起動したりできます。 最も厄介なことは、この動作を変更することは不可能だということです。 これで発生する問題:
1.プログラムがインストールされているという記録がありますが、そのパスは空です...
2.ファイルの読み取りエラーが発生し、インストーラーは静かに「うーん、レジストリファイルは何らかの曲線です。新しい曲線を作成します」と作成します:)
彼のマシンの状況を数回修正するために、彼は開発およびテスト中にこのファイルを削除しました。
永遠の質問-何をすべきか? 何もなかったかのように設定しますか? また、サービスが回転している場合、実行されている場合と実行されていない場合、またはプロジェクトに競合する機能がある場合はどうなりますか? すべてのファイルがインストールディレクトリにコピーされるわけではありません。 ここには開発者向けの単一の答えはありません。プロジェクトとマニュアルの要件から進める必要があります...
別の質問、インストールされたプログラムに関するデータを保存するために、InstallAnywhereまたはAdobeのSQLiteでxmlファイルが使用されるのはなぜですか?
これは、さまざまなプラットフォームにインストールするときに単一のインターフェースを提供するために行われます。
アドビ製品インストーラーの問題は、ライセンス、機能とコンポーネントの内部競合、または同様のものに関連する問題にかかっていると確信しています。 そして、インストーラー開発者のプロ意識とは一切関係ありません。