WiX
serverfault.com 2011年頃、10年前の古い文章ですが、大変長くて情熱的なので良いなーと思いました。 システム管理者にとっての利点という視点があるのが興味深いです。 なるほど、企業で使っているPCに一斉にアプリケーションをインストールするのにCLIで起…
msiファイルをビルドしているとちょいちょい次のダイアログを見ます。 「別のバージョンの製品が既にインストールされています。」ダイアログ Product Idが同じ異なるmsiファイルを実行すると起きます。 何が「異なる」と表示されるのか特定出来ていませんで…
Windows用のインストーラーのうち拡張子がmsiのインストーラーでは、次のようにインストールボタンに盾アイコンが表示されるインストーラーとされないインストーラーがあります。これは何が違うのでしょうか? 盾アイコンの表示されたインストールボタン 盾…
WiX チュートリアル 日本語訳 Lesson 2 ユーザー・インタフェイス / 1. 最初のステップにある、Sample-2-1-WixUI.zipはWixUI_InstallDirという組み込みのダイアログセットを使っています。 WixUI_InstallDirを使っているというのは、wxsファイル中に次の要素…
github.com WiXでWSLポートフォワード設定するインストーラーを作る - @ledsun blog で作ったインストーラー、というかインストーラーでインストールするバッチファイルの修正をしたくなったのが2回目なので、リポジトリを作りました。 1度目は有効にするバ…
多言語化の仕組みがあるのこれをつかいます。 wxl形式のXMLファイルを用意し、ビルド時にコマンドラインオプションで指定すれば変更できます。 文言の変更 例えばWiX チュートリアル 日本語訳 Lesson 2 ユーザー・インタフェイス / 1. 最初のステップにある…
msiファイルのプロパティの詳細を見るとプログラム名の欄にmsiファイルを作ったプログラム名が記載されていることに気がつきました。 ダウンロードディレクトリに残っていたmsiファイルを見てみると、結構いろいろなmsiファイルがWiX Toolsetで作られていま…
いまさらWiX Toolsetの競合の存在に気がつきました。 Visual Studio Installer Projects and .NET 6.0 | Microsoft Docs Microsoft Visual Studio Installer Projects - Visual Studio Marketplace 【.NET Core対応】Visual Studio 2019でインストーラを作成…
WiX チュートリアル 日本語訳 Lesson 4 アップグレードとモジュラー化 / 1. 古いのを探す の Sample-4-1-Upgrade.zip に含まれる SampleMajorUpgrade.wxs を参考にして話を進めます。 メジャー・アップグレードでは次のように Upgrade要素 を定義します。 <Upgrade Id='YOURGUID-7349-453F-94F6-BCB5110BA4FD'> </upgrade>
WiX チュートリアル 日本語訳 Lesson 1 始めよう / 3. 使用に供する の SampleFirst.wxs を例にします。 <Component Id='MainExecutable' Guid='A3AAD3C9-C833-4D1B-939E-0D1C47A31D95'> <File Id='HogeEXE' Name='HogeAppl10.exe' DiskId='1' Source='HogeAppl10.exe' KeyPath='yes'> </file></component>
http://cml.s10.xrea.com/ej/WiX/wi_etc.htm メジャーアップグレードは、アプリケーションが ユーザーごとにインストールされていれば ユーザーごと、マシンごとでインストールされていればマシンごと、でしか適用できない。 これはなぜでしょうか? Windows…
最初は差分が小さいはずだし、マイナー・アップグレードを選ぼうと思っていました。 次の記述を発見しメジャー・アップグレードを選ぶことにしました。 どういう理由かは知りませんが、スモール・アップデートとマイナー・アップグレードは、 .msi ファイル…
WiXではショートカットを作る方法が2つあります。 WiX チュートリアル 日本語訳 Lesson 1 始めよう / 2. 中に入るファイル では、次のような方法を紹介しています。 <Component Id='MainExecutable' Guid='YOURGUID-83F1-4F22-985B-FDB3C8ABD471'> <File Id='HogeEXE' Name='HogeAppl10.exe' DiskId='1' Source='HogeAppl10.exe' KeyPath='yes' /> </file></component>
ComponentGroupを使う時につぎのようにSource属性に同じ値を何度か書きました。 <ComponentGroup Id='Processors' Directory="Processors" Source="..\Project\bin\Release"> <Component Id="CMP__main.exe" Guid="{xxxx}"> <File Id="File__main.exe" Name="main.exe" /> </Component> </ComponentGroup>
ComponentGroupの効果 WiXでは次のようにDirectory要素の下に、インストールするコンポーネントを列挙します。 GUIDは、適当に省略してあります。 <Directory Id='TARGETDIR' Name='SourceDir'> <Directory Id='ProgramFilesFolder' Name='_'> <Directory Id='Hoge' Name='Hoge' FileSource="src\"> <Component Id="CMP__main.exe" Guid="{xxx}"> </component></directory></directory></directory>
wix-tutorial-ja.github.io <Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' DiskPrompt='CD-ROM 1枚目' /> では、Media要素を使う例が紹介されています。 WiX 3.6: A Developer's Guide to Windows Installer XML作者:Ramirez, NickPackt PublishingAmazon では、MediaTemplate要素が紹介されていました。 次のように、Id属性とCabinet</media>…
WSL向けのWindowsポートフォワード設定をスクリプト化する - @ledsun blog にて、WSLポートフォワード設定をするバッチファイルが出来ました。 WiXの練習用にこのバッチファイルのインストーラーを作ってみました。 ソースコードです。 gist.github.com 書い…
WiX チュートリアル 日本語訳 Lesson 2 ユーザー・インタフェイス / 1. 最初のステップ candle.exe SampleWixUI.wxs light.exe -ext WixUIExtension SampleWixUI.wixobj とありますが、次のようなエラーが出ます。 PS C:\Users\led_l\wix-play-ground\Sample…
WiXでインストーラーをコンパイルするコマンドがこんな感じなんです。 candle.exe' .\SampleFirst.wxs コマンドを打つ度に、頭の中で「キャンドルも 十字架も...」するんですよ。 作った人はそんなこと1ミリも考えてないと思うんですけど、罪なコマンド名で…
WiXというツールをつかってWindows用のインストーラーを作る勉強をしています。 練習用に、その中でレジストリに値を書き込む機能があったので、WindowsでDvorakキー配置 - @ledsun blog で設定したリポジトリキーを書き込むインストーラーを作成してみまし…
Wixというツールがあります。 この使い方が分かればよいはずです。 ということで、 WiX チュートリアル 日本語訳 を参考に、 チュートリアルを流し読みする サンプルソースからインストーラーを作成する チュートリアルを読み直す という手順を繰り返して、W…