問題タブ [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.
wix - heat.exe 自動生成ファイル フラグメント - すべてのビルド?
heat.exe を使用して WiX ファイルのフラグメントを生成しています。
ビルドが完了するたびに、Web プロジェクト内の新しいファイルが取得され、新しい wxs ファイル フラグメントが作成されるように、ビジュアル スタジオで Web サイト プロジェクトにビルド後のステップを追加することでこれを行いました。これらのファイル フラグメントは、wix セットアップ プロジェクトに直接コピーされるため、セットアップ プロジェクトがビルドされると、新しく追加されたすべてのコンテンツ ファイルが msi.xml ファイルに含まれます。
前回、heat.exe が wxs ファイル フラグメントを再生成するたびに、新しい GUID が作成されることを確認しました (ただし、新しいコンポーネント ID は作成されないようです)。
いずれにせよ、私は WiX/heat に非常に慣れていないので、質問は - wxs ファイルを毎回自動生成する必要があるかどうかです。たとえば、Web サイトの新しいバージョンがリリースされ、インストール/アンインストールされたときに、これが本番環境にどのような影響を与えるでしょうか? すべてのビルドでこれらのファイルフラグメントを自動生成して含めるべきではない理由はありますか?
iphone - cocos2dアプリで消費電力を削減する可能性
私はいくつかの小さなアニメーションを含むボードゲームを作りました。プロセッサの負荷を減らすために、fpsを60から30に減らしました。しかし、デバイスはまだ非常に暖かくなります。cocos2dなしで作成された別のアプリケーションは、それほど加熱していません。iPhoneを落ち着かせる方法はありますか?デバイスの状態は次のとおりです。
- Wifiは常に有効になっています
- アプリはgamecenterを使用しています
- GPSは非アクティブです
- fpsは常に30です
- エンジンとしてcocos2d-iphoneを使用しています
com - ネイティブ(x86またはx64)COMDLLの登録情報をWIXHeat(v3.5、v3.6)で収集しますか?
インストーラーに含めたい新しいC++/ ATL DLL(x86およびx64)があり、Heat.exeがある程度の労力を節約できることを望んでいました。
wix - 熱生成されたWiXフラグメントのコードベースレジストリエントリの制御
インストール中にCOMを表示する必要がある.NET4.0アセンブリがあります。私はWiX(バージョン3.5)を使用しているので、熱を使ってWiXフラグメントを生成するのが論理的なオプションです。これは問題なく機能しますが、熱でノブをどのようにいじっても、CodeBase RegistryValuesのデフォルトは「file:/// C:/Windows/Microsoft.Net/assembly/GAC_32 / ...」ですが、アセンブリは間違いなくそうではありません。そのディレクトリにインストールされます。
そのため、レジストリエントリはインストール中に正しく追加されますが、存在しないアセンブリを指します。悲しい日。この問題は、可能な限り単純なユースケース( "heat asm.dll -out asm.wxs")でも発生します。
これまでのところ、オプションは次のようです。
WiXプロジェクトの他の場所でアセンブリのインストールを処理し、フラグメント内のCodeBase宣言を手動で変更してから、WiXツールチェーンの残りの部分に渡します。
Assembly = "。net"属性をファイルタグに手動で追加します(http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/net-COM-registration-with-heat-td3606182.html)。
XSLTを使用してフラグメントを変換します(http://blog.accentient.com/2010/06/03/AddingHEATOutputToTheGAC.aspx)
これらのオプションはどれも特に魅力的ではありません。XSLTをいじることを伴わない、これを行う自動化された方法はありますか?
path - WixでComponentGroupRefのディレクトリを設定しますか?
Heat ツールを使用して、コンテンツをインストールするフォルダーに基づいて wxs ファイルを生成しました。これにより、次のような大きなファイルが得られます。
メインの Wix ファイル Product.wxs には、Heat によって作成された上記の ComponentGroup を参照する機能があります。機能は次のようになります。
これは機能していますが、インストーラーを実行すると、コンポーネント グループ内のファイルが C ドライブのルート (つまり、C:\DirectoryName) に配置されますが、それらを Program Files (例: C:\Program Files\) に配置したいと考えています。ディレクトリ名)。
何か案は?
ありがとう、アラン
wix - Wix Heat で .svn ディレクトリを無視しますか?
Heat ツールを使用して Wix マークアップを生成し、セットアップに多数のファイルとフォルダーを含めています。これは正常に機能していましたが、ソース フォルダーを Subversion リポジトリに追加したため、Heat が .svn フォルダーも含めたいと考えていることに気付きました。
特定の条件に一致するファイルまたはフォルダーを収集しないように Heat に指示する方法はありますか?
現在 Wix 3.5 を使用しています。
wix - wix - ディレクトリ全体とそのすべての内容をコピーする
私の Wix インストーラーは、ディレクトリーの内容を宛先フォルダーにコピーする必要があります。Directory 要素に FileSource 属性があることを理解しています。私はこのようなことを試しました:
これは、プリプロセッサ変数からファイルまたはサブディレクトリを取得していません。
これを達成する別の方法はありますか?
com - WXS で、別のコンポーネントを介してインストールされたファイルを参照するにはどうすればよいですか?
この質問は、heat.exe からの出力に関するものです。MSI での COM 相互運用のためにいくつかの .NET アセンブリを登録することに関して、私は「正しいこと」をしようとしています。Regasm.exe は間違っています。
簡単で「ほとんど」動作する regasm.exe を直接呼び出すことは、明らかに良い考えではないと Rob Mensching 氏は述べています。そのブログ投稿では、なぜそれが良い考えではないのかを説明し、非常に簡単な解決策も提供しています。残念ながら、2004 年の投稿は、現在非推奨またはサポートされていない wix 機能を示唆しています。そこに記載されている解決策はもはや有効ではないと思いますが、そのブログ投稿に記載されている問題は残っています.
問題の「正しい」解決策は、heat.exe を実行してから、ディレクトリ参照などを「修正」することです。それは非常に簡単に聞こえますが、私がやろうとしていることです。
わかりました、だから私は正しいことをしようとしています。また、アセンブリを GAC したくないので、codebase引数を使用して COM 登録を行う必要があります。heat.exe の出力には、次のようなものが含まれます。
最初の質問: とは正確には何Value="file:///[#fil4B562083D141F5A2F29E28A1BD09AF3E]"ですか?
それはfil4B562083D141F5A2F29E28A1BD09AF3EWix によって生成された Id のようです。ID は .wxs ファイルの File 要素に属し、名前付き .NET クラスを含むアセンブリ (DLL) へのパスを参照します。では、オクトソープは何のためにあるのでしょうか。そして角括弧?そしてfile:/// プレフィックス?この構文を理解するのを手伝ってください。
私が尋ねる理由 - 私はこの ID を使用したくありません。ファイルの実際の意味を反映するファイル ID を既に持っていますが、それは違います。
しかし、問題のファイルは別のコンポーネントにインストールされています。そのファイルを参照しようとすると、次のようなエラー メッセージが表示されます。
これを解決するにはどうすればよいですか?
Fileこのコンポーネントには、同じファイルシステム ファイルを参照する別の要素は必要ないと思います。別のコンポーネント (同じ機能) と共に既にインストールされています。どのように参照できますか?
基本的に のような要素が欲しいのですFileRefが、それは明らかに存在しません。
asp.net - WiX(奉納)プロジェクトリファレンスハーベスティング(HEAT)ASP.NetWebアプリケーション
私がしていること
Visual Studio2010にASP.NetWebアプリケーションとWiXセットアッププロジェクトがあります。セットアッププロジェクトのビルド前イベントとして次のHEATコマンドを設定すると、Webアプリケーションを明示的に収集できます。
「%WIX%\ bin \heat.exe」プロジェクト「$(SolutionDir)Application.WebUI \ Application.WebUI.vbproj」-o「$(ProjectDir)ProjectOutputContent.wxs」-pogコンテンツ-ag-templateフラグメント-nologo-directoryid RUNTIMEFOLDER
「%WIX%\ bin \heat.exe」プロジェクト「$(SolutionDir)Application.WebUI \ Application.WebUI.vbproj」-o「$(ProjectDir)ProjectOutputBinariesAndSymbols.wxs」-pogバイナリ-pogシンボル-ag-テンプレートフラグメント- nologo -directoryid BINFOLDER
RUNTIMEフォルダーとBINFOLDERは、メイン製品のWXSファイルで宣言的に設定したディレクトリであることに注意してください。
なぜ私はそれが好きではないのですか
セットアッププロジェクトをビルドする前に、HEATで生成されたフラグメントWXSファイルをチェックアウトする必要があるため、このアプローチは面倒です。もう1つの考慮事項は、これがWebアプリケーションであり、バイナリとシンボルをコンテンツとは別のディレクトリ(bin)にドロップする必要があることです。
私が目指していること
Wixセットアッププロジェクト内でプロジェクト参照を使用し、HarvestプロパティをTrueに設定するだけです。次に、BinariesContentSatellitesを収集してフラグメント内の必要なアイテムを取得し、メイン製品のWXSで参照できる単一のディレクトリIDを設定できます。問題は、これにより、コンテンツ、バイナリ、およびシンボルが同じフォルダーに配置され、後者の2つがネストされたbinフォルダーに配置されることです。このプロジェクト参照を2回追加することはできません。それぞれ、収穫オプションが異なります。
私の質問
自分が求めていることを実行する方法はありますか、それともビルド前のイベントを維持する必要がありますか?余談ですが、ビルドイベントを使用せずに、フラグメントを手動で1回収集してから、必要に応じて再収集することを検討しました。私はそのアプローチを避けたいと思います。
.net - .NET COM Interop deployment with Wix failing
I'm developing a .NET BandObject toolbar for Internet Explorer. I'm working off the sample at CodeProject ( http://www.codeproject.com/KB/cs/Issuewithbandobjects.aspx ) and everything was working fine, I was using gacutil and regasm to test the toolbar and that was working. Then I moved to using Wix in order to test real deployment and construct the msi file, which meant, switching to Heat.
Initially, I created the fragments for the various dll's and this was working fine having manually added the <... assembly=".net" ...> attribute to the various wxs files. However, in order to further prepare it for deployment I ended up renaming the project and dll filename, changing the GUID's from the samples 2 dll's and following this, also tried to test upgrading the major version number. Having changed the dll's I also regenerated the wxs files with Heat, manually adding necessary attributes. However, now the toolbar no longer loads in IE, even though the option is there. It fails silently.
On inspecting the Registry entries, using OLEVIEW.exe , I can create an instance of the old project dll and access it's COM interface that was registered with gacutil and regasm. However, the Wix installed file fails to load with an error of:
I suspect that this is because the new COM object has for some reason not been registered corrrectly either by Wix or the msi installation process. This is because on comparing the old and new dll's in OLEVIEW, the new dll has Registry entries of the form:
The old COM object has non of these lines. This suggests that even though it has been installed to the GAC, it has not been registered properly. What's even more confusing is that old msi installation files that used to work also failed if installed (all previous Wix versions first removed).
I am at a loss. Hopefully someone can shed light on the situation.
Best Regards, Daniel.