1

さまざまな構成で使用できる WiX Toolset v3.7.1224.0 でインストーラーを作成しようとしています。VS2010 で Votive を使用して構築したインストーラーが既に動作しています。インストーラーは、WixSqlExtension を利用して MSSQL データベースを作成します。

データベースが作成され、すべてのテーブルが指定された後、インストーラーがいくつかの値でテーブルを初期化するようにします。現時点では、これらの値は SqlString 要素として msi にコンパイルされます。これらの文字列を構成ファイルに外部化したいと考えています。構成ファイルは、Customaction の InsertTemporary() メソッドと SOURCEDIR プロパティを使用して一時的に SqlString テーブルに挿入される文字列を格納します。構成ファイルの形式はまだ決めていませんが、ファイルを解析できるように、各 SQL 文字列がそれぞれ独自の行または独自の要素にある xml ファイルまたは単純なテキスト ファイルのいずれかになります。ファイル内の各エントリに一時レコードを追加します。

この構成ファイルをプロジェクト構造に統合したいと考えています。プロジェクトの出力ディレクトリにコピーする必要がありますが、エンド ユーザーのコンピューターにはインストールしないでください。ファイルをプロジェクトに追加し、Votive でファイルの詳細プロパティを変更することで、これを達成できると考えました。「ビルド アクション」を「コンテンツ」に、「出力ディレクトリにコピー」を「常に」に指定しました。しかし、プロジェクトをビルドすると、プロジェクトの出力ディレクトリにファイルが存在しません。せいぜい、複数の構成ファイルを含むディレクトリをプロジェクト出力ディレクトリに追加できるようにしたいと考えています。

Votive と Wix でこれを達成する方法はありますか? これは MSBuild で可能ですか? ディレクトリとファイルを作成するには、.wixproj ファイルをどのように変更する必要がありますか?

4

1 に答える 1

1

実際、解決策はそのプロジェクトの wixproj ファイルを変更することです。Wix は MSBuild を使用します。MSBuild の WIX ターゲットの非常に簡単な説明は、こちら にあります。Visual Studio 内で wixproj ファイルを編集するには、Wix プロジェクトのコンテキスト メニューを開いてアンロードします。アンロードしたプロジェクトのコンテキスト メニューを開き、 を選択しますedit projectname.wixproj

プロジェクトのコンパイル後にファイルをコピーするには、属性が に設定された新しいTarget要素をwixproj ファイルの要素に追加する必要があります。ファイルをコピーするには、出力フォルダーにコピーするファイルごとに1 つの要素を指定します。要素内に要素を配置します。ここで構文について読んでください。MSBuild ではさらに多くのことができるので、リファレンスをご覧ください。NameAfterBuildProjectCopyCopyTargetCopy

于 2013-12-13T10:03:07.193 に答える