問題タブ [heat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-studio-2012 - msbuild+wix : heatdirectory で defineconstants の変数を使用するにはどうすればよいですか?
皆さん、こんにちは : 初めての投稿です !
私は、定数 SourceBinaries=c:\someproject\bin\release.
目的は、複数のプロジェクトに同じ wixproj/setup を使用し、TFS-Build で全体を自動化することです...
ただし、ディレクトリ タグが SourceBinaries の値を取得することはありません。
ここにxmlコードがあります:
何を試しても「エラー「HeatDirectory」タスクに必要なパラメーター「Directory」の値が与えられませんでした。
誰かがこれを解決するのを手伝ってくれますか?事前に感謝します...
ディディエ
wix - コンポーネントの手動作成から、HeatDirectory タスクによるハーベストへの移行
製品をインストールするプロジェクトをビルドするために WiX 3.8 を使用しています。インストーラーは基本的に完了です。パッケージによってインストールされるプログラムの 1 つは、頻繁に更新されるサード パーティによる dll に依存しています。ばかばかしいことに、dll のバージョン番号は定期的に変更されます。最初にインストーラー プロジェクトを作成したとき、ファイル名の変更をサポートすることを考慮せず、すべてのコンポーネントを手動で作成しました。
この動作は将来的に変更する必要があります。私の理解が正しければ、 HeatDirectory Taskを使用して、ファイルのコンポーネントを自動的に生成できます。動作している HeatDirectory タスクを使用してサンプル プロジェクトを作成しました。しかし、HeatDirectory タスクが生成する出力と、私が過去に使用してきた手動で作成したコンポーネントとの間には、いくつかの矛盾があります。
私は、HeatDirectory タスクが私の手動アプローチと同じ出力を可能な限り生成することを望んでいます。以下は、2 つのコンポーネントのコードです。最初は手動で作成され、次に HeatDirectory タスクによって作成されます。
手動で作成されたコンポーネント:
HeatDirectory タスク生成コード:
上記の出力を生成するコードは次のとおりです。
ここで、変更したい HeatDirectory タスク生成コードの特性を書き留めておきます。
- componentgroup 内のすべてのコンポーネントには
Directory
属性があります。ComponentGroup
親に属性を持たせDirectory
、すべての子コンポーネントでそれを省略したい。 - 静的ガイドが必要です。
Id
コンポーネントの属性を、接頭辞とCMP
それに続くファイル名で構成したいと考えています。プロジェクトに同じファイル名を持つ 2 つのファイルが存在できないことは理解していますが、そうではないことはわかっています。タスクによって生成された不可解な識別子は必要ありません。- コンポーネントの
File
子項目が質素すぎます。Name
ファイルの現在の名前であるすべてのファイルの属性を作成するために、HeatDirectoy タスクが必要です。次に、Compressed
属性に値を追加し、何らかの方法でタスクで指定できる変数値を追加する必要がありますno
。DiksId
- 収集されたファイルが dll の場合、タスクは属性
Asssembly
に value を.net
追加し、収集AssemblyApplication
されたファイルの名前をその値として、また収集されたファイルの名前をその値として追加する必要AssemblyManifest
があります。
HeatDirectory タスクでこれを達成することは可能ですか?
wix - Wixはツリー全体の単一のコンポーネントIDを生成します
私は wix の経験がほとんどまたはまったくない人であり、私が担当するコンポーネントについても Windows をサポートしようとしています。製品が生成する一連のファイルのマージ モジュールを作成しようとしています。これらのファイルは多数のサブディレクトリに存在します。ツリー全体のすべてのファイルに対して単一のコンポーネント ID を作成する方法を考えていました。マイナー アップグレードについては心配していません。ファイルごとに多数の GUID を生成しないようにしています。
また、ファイルをインストールするルート ディレクトリの名前を変更する方法はありますか。現在、私たちのビルド システムでは、インストールしたいファイルは最終的に "install" というディレクトリ名になります。heat によって生成された wxs ファイルでは、install として表示されます。「インストール」ではなく、実際の製品名に変更できないかと考えていました。
xslt - 別の XML の別の属性で別の XML の属性を使用する
Wix ツールセットの Heat を使用してインストーラー用のコンポーネントを生成しますが、ユーザーごとのインストーラーはほとんどないため、Heat の Autogenerate Guids を使用できません。GUID をランダムに生成することはできますが、コンポーネント ルールのため、これは望ましくありません。
したがって、各ファイルの静的 GUID を追加した生成された構造とは異なる構造で、インストールに含める必要があるファイルのリストを含む XML があります。私がやりたいことはfilename
、自分の XML と生成された XML を一致させ、生成された XML に GUID を挿入することです。
以下は、変換を行わない xml のサンプルです。
各ファイルの GUID を含むカスタム XML は次のとおりです。
したがって、ファイル名とできれば親フォルダーが両方の XML で一致する場合は、Guid="PUT-GUID-HERE
「」を に置き換えてください。Guid="52B62A6E-DD87-424A-8296-3AA00E74AEF8"
XSL を理解しようとしていますが、達成できるのは脱毛だけです。私と私の残りの髪はどんな助けにも感謝します.
更新: これら 2 つの xml ファイル間の照合Source
は、最初のファイルとPath
2 番目のファイルで実行する必要があります。
Source="$(var.sample)\Folder1\NewTextFile0.txt"
ファイル名 (NewTextFile0.txt) と親フォルダー (Folder1) は、プロジェクト内で一意です。同じことが、Path="\Programs\Folder1\NewTextFile0.txt"
ファイル名と親フォルダーが一意であることにも当てはまります。
wix - Wix Heat がレジストリ出力を生成しない
私は WIX を初めて使用します (VS2013 が私のセットアップ プロジェクトをサポートしなくなったため、引っ越しました)。
使用しています: Windows インストーラー XML ツールセット ツールセット ハーベスター バージョン 3.8.1128.0
.reg ファイルから WIX フラグメントを生成したいのですが、次の場合:
heat reg MyApp.reg -v -o MyApp.wxs
MyApp.wxs の内容は次のとおりです。
レジストリ ファイル MyApp.reg の内容は次のとおりです。
ありがとうございました。