この同じ情報に関して多くの質問があることは承知しています。全部読んだけど、頭の中がぐるぐる回って、どっちに行けばいいのかわからない。さらに、ドキュメントの欠如は本当に痛いです。
これが私のシーンです。WIX を使用してアプリケーションのインストーラーを作成し、ディーラーに製品情報を提供しようとしています。このアプリには、当社製品の約 2000 の画像とドキュメント、および Microsoft Sync Framework によって更新される SQL CE データベースが含まれています。データは頻繁に変更されるため、これらの 2000 をアプリのプロジェクトのコンテンツ ファイルとして保持することは非常に望ましくありません。このアプリは、.NET Framework 3.5 SP1、SQL Server CE 3.5、Microsoft Sync Framework 1.0、および ADO.NET Sync Services 2.0 に依存しています。
アプリの要件は次のとおりです。
- ディーラーには、更新 (アプリまたはデータの更新) のために毎年 CD でアプリが提供されます。
- 新しい画像、ドキュメント、またはデータを取得するには、アプリをインターネットから更新する必要があります。
- 前提条件がクライアント マシンに存在しない場合は、インストールする必要があります。
- 完全なインストーラーは、MSBuild スクリプトから生成する必要があり、人間の介入はできるだけ少なくしてください (2000 以上のファイル リストを手動で更新する必要はありません)。
これまでに達成したことは、ソリューションに Votive プロジェクトがあることです。.wxs ファイルでバイナリを手動で指定しました。Web は .wixproj ファイルを変更して、HeatDirectory タスクを使用して、指定された場所からデータ (画像、ドキュメント、およびデータベース) を収集しました (これは壊れており、ICE38 エラーが発生します)。これで問題ないように見えますが、それでも多くの作業が必要です。プログラムをリリース モードで実行し、指定したディレクトリにコピーして、手動でデータを更新する必要があります。
私は、この状況で他の人がどうするかを見ています。
- 2000 以上のデータ ファイルに関して、ソリューションをどのように配置しますか? サーバーから現在のデータを取得するカスタム ビルド スクリプトを作成しますか、それともメイン プロジェクトにコンテンツ ファイルとして含めますか?
- すべてのプロジェクト出力 (参照されたアセンブリを含む) とすべてのデータ ファイルを WIX に含めるにはどうすればよいでしょうか? 完全なサンプルがあれば、それは素晴らしいことです。私が見つけたのはあちこちにある小さなクリップだけで、最初から最後までの例全体ではありません。
- バージョン番号をどのように扱いますか?それらをビルド スクリプトの定数として配置し、$(var.VersionNumberName) を介して参照しますか? 展開されているプロジェクトからバージョン番号を自動的に取得しますか? もしそうなら、どのように?
私が見つけたものよりも良い情報があれば、含めてください。私は数多くの記事、ブログ、Stackoverflow の質問、チュートリアル、wiki などを読みました。チュートリアルは素晴らしいですが、MSBuild と Votive については何も説明していません。MSBuild と Votive およびすべての WIX MSBuild ターゲットの使用に関する最初から最後までのチュートリアルを見たいと思います。このようなチュートリアルを誰も知らない場合は、まとめます。私はすでに情報収集と読書に 1 週間を費やしてきました。私も MSBuild を初めて使用するので、MSBuild に関する優れた記事があれば、それらを含めてください。