とっちゃん's Blog

WindowsInstaller に WiX はいかがですか~

目次

Blog 利用状況

ニュース

とっちゃんって?

コミュニティ

メーリングリスト

@ITの記事

CodeZineの記事

WiX チュートリアル

Windows ユーザー エクスペリエンス ガイドライン

唯一の日本語書籍

人気のほどは...

記事カテゴリ

書庫

日記カテゴリ

インストーラ関連

旧館

2017年3月29日 #

[WiX] WiX v3.11 RC2

WiX v3.11 Release Candidate 2 にあるとおり、RC2(v3.11.0.1528)がでました。まだVS Template周りに問題が残っているようですがあらかたバグフィックスできてるらしいです。

ちなみに、VS2017対応はこの3.11からになります。3.10までは、VS2017を認識しません。

posted @ 12:00 | Feedback (0)

2017年3月6日 #

3/11 はわんくま同盟横浜勉強会#9 です。

最近ブログ全然書いてない。。。orz

久々のエントリーが宣伝なのもあれですが、おいらも登壇します。

今まで1年に一度だった横浜勉強会ですが、今年は2回開催。来年?それはまぁまたその時考える!w

ということで、今週末の開催です。申し込みは→ http://www.wankuma.com/seminar/20170311yokohama09/

  • 12:30 ~ 12:50 会場・受付開始
  • 12:50 ~ 13:00 わんくまについて
  • 13:00 ~ 13:30 LT
    • (調整中)
    • (調整中)
  • 13:30 ~ 13:40 休憩
  • 13:40 ~ 14:30 「マルチスレッド基礎講座 前編」 by とっちゃん Lv1.73くまー
  • 14:30 ~ 14:40 休憩
  • 14:40 ~ 15:30 「マルチスレッド基礎講座 後編」 by επιστημη Lv1.73くまー
  • 15:30 ~ 15:40 休憩
  • 15:40 ~ 16:30 「Bitbucket と SourceTree で学ぶ Git 入門」 by 長沢智治さん Lv1くまー
  • 16:30 ~ 17:00 撤収
  • 18:00 ~ 懇親会

時間割はこんな感じ。打ち合わせなんもなしですが、エピさんとマルチスレッド基礎講座をやります。

繋がる感じは。。。あるのだろうか?w

まだ、お席に余裕があります。良ければご参加ください。

posted @ 13:06 | Feedback (0)

2016年12月5日 #

[勉強会]わんくま東京#104セッション資料公開

グダグダとおしゃべりしてきました。最後荒井さんが突然現れたのにはびっくりですがw

DLは、こちらから。https://1drv.ms/p/s!AuVVWpjfPyA0hNxqo5mYvaDm9UwtcA

posted @ 14:12 | Feedback (0)

2016年11月30日 #

12/3 はわんくま同盟 東京勉強会 #104

申込ページ:http://www.wankuma.com/seminar/20161203tokyo104/

ということで今週末はわんくま同盟東京勉強会#104。
東京は年内最後なので、忘年会も兼ねてます。

・10:40 ~ 11:00 開場・受付開始
・11:00 ~ 11:10 わんくまについて...
・11:10 ~ 12:00 「レガシー(データベース処理)ワールド」 by 片桐 継 Lv.2くまー
・12:00 ~ 13:00 おひるごはん
・13:00 ~ 13:30 ライトニングトーク
・13:40 ~ 14:30 「HTTPを振り返ってみる」 by がるさん Lv.1.1くまー
・14:40 ~ 15:30 「MSのマルチプラットフォームのはなし」 by 山本美穂さん Lv.2くまー
・15:40 ~ 16:30 「Desktop アプリを UWP アプリに変換するときの注意事項」 by とっちゃん Lv.3くまー
・17:00 ~ 懇親会

こんな感じの時間割なので、濃すぎず薄すぎずですかねーw

東京では一年ぶりかしら?おいらもしゃべりまーす。

posted @ 13:55 | Feedback (0)

2016年10月20日 #

[Desktop App Converter]バッチファイルをインストーラに指定する

Desktop App Converter はどんな形であれ、インストーラさえ用意できれば、appx 化のための間口を用意してくれる優れものです。

ということで、究極の単純インストーラでもある、バッチファイルで実験してみました。

インストール対象は、毎度おなじみ MfcApp.exe(プログラムは、https://1drv.ms/u/s!AOVVWpjfPyA0hNsm からプロジェクトを取得してねw)。

今回は単純に実験なので、MfcApp.exe をコピーするだけの単純なプロジェクトで関連付けなどのレジストリ設定は一切ありません。

用意したバッチファイルもごく単純なもので、

@ECHO OFF
XCOPY Release\MfcApp.exe C:\Samples\MfcApp\

という内容です。

上記プロジェクトのソリューションフォルダに install.cmd という名前で用意しました。

 

まずは結論。

バッチファイルをインストーラにすることができます。

バッチファイルなので複数の処理も指定可能です。ユーザー入力を要求しない限りどのプログラムを実行しても問題なく実行できます(管理者権限を持って動作しているという前提になります)。

これで一気に敷居が下がりますね。

合わせて実験的ですが XCOPY コマンドを直接指定するなども行ってみましたが、これらは失敗してしまいました。

どうやら、システムフォルダはリダイレクトされてしまう関係でうまくいかないみたいです(フルパス指定じゃないとファイルがないって怒られる。。。)

 

そのほかの注意点は

XCOPY するだけで、ショートカットアイコンを作らないので判断材料がガクッと減ります。

そのため、プライマリアプリケーションがわかりませんので、AppExecutable が必須になります。

また、インストール先もわからないので、AppInstallPath がないとW_INSTALL_PATH_NOT_DISCOVERED という warning が出ます。

ということで、指定パラメータは

DesktopAppConverter ?Installer SampleDAC\Install.cmd ?Destination AppxOutput ?PackageName MfcApp ?AppExecutable C:\Samples\MfcApp\MfcApp.exe ?AppInstallPath C:\Samples\MfcApp ?Version 1.0.0.0 ?MakeAppx ?Verbose

という感じになります(見ながら打ち込んだのであってるかどうか自信ないわw)

これで、インストーラなんて作ったことないよ!という人でもサクッと作れますね。

ポイントは、

  1. 出力先は極力単純にする(typo防止策)
  2. 原則パラメータは全部省略できないと思うべし。

です。

あと、忘れがちですが、ここで出来上がるappx はインストーラです。当然作成環境とは異なる環境で動作するのでその点も忘れないようにしましょう。

posted @ 15:10 | Feedback (0)

2016年10月14日 #

[Desktop App Converter]コンバート時にインストーラを実行するところでエラーになる場合

IP FastRing に 14946 が降ってきました。ということで、14942 は wim がないまま終わってしまったので、再び環境構築。

タイミング次第(出た直後くらいw)では新しいのを指してくれないことがありますが、最新イメージは http://aka.ms/converterimages の短縮URLでアクセスできます(ちゃんとメンテナンスされています)。

2016/10/12 公開版では、14393(CB), 14931(IP-Slow), 14946(IP-Fast) の3つが公開されています。

ということで環境に合わせてDL&セットアップ。。。するのですが、

以前のビルドで利用したことがある場合、コンバートに失敗(エラーコード:0xC0370101)することがあります。

スクリプト的には E_CREATING_ISOLATED_ENV_FAILED というエラーがでるのですが、エラーコードも文字通りコンテナのイメージが想定しているものじゃない!というもの。

ほかに、自分の経験では同じタイミングで BSOD になることもありました。

現状での対処としては、まず完全クリーンナップをします。

コマンドは「 DesktopAppConverter ?Cleanup All 」

コマンドを実行すると、既存の展開イメージの削除などを行い、最後にコンテナをアンインストールして再起動します。

再起動してきたらきれいになっているので、

改めて、「DesktopAppConverter ?Setup ?BaseImage …\BaseImage-14946.wim」

として改めてセットアップを行います。この時もやはり再起動が要求されますので、再起動します。

ちなみにストア版だと再起動要求でUIを出さずにエラーメッセージが出て、処理を中断します(この時点で、リブート後に継続するように設定されている)。

状態を確認して、再起動が要求されている場合は手動でいいのでOSを再起動します。

再起動後にログインすると、wimの展開などセットアップ作業を継続しますのでこれの終了を待ちます。

これで、再び使えるようになります。

 

もし、これでもダメだった場合、Hyper-V ごと再インストールするとうまくいくかもしれません。

つい先日 SlowRing な会社マシンに降ってきた 14931 が、Hyper-Vをアンインストールしてくれたので(インポートができないので、vhdつかって新規構築の必要があるというね…orz) そのあたりの影響があるかもしれません。

posted @ 15:48 | Feedback (0)

C++/WinRT

C++/WinRT Available on GitHub

なんていうものが出てきました。Native の C++ プロジェクトで、Windows Runtime API を使うためのライブラリらしいです。

これってば、Desktop Bridge アプリで使ったらUWPAPIも結構使えるんじゃないか?という気がする。。。もちろん、気がするだけで試してはいませんw

最も UWP API は C++/CX からじゃないと使えないならダメなんだけどねw

落としてないのでこれ以上はよくわかってませんが、VS2015 Update 3, VS”15” Preview などで使えるらしいです。

posted @ 12:25 | Feedback (0)

2016年10月3日 #

[MVP]再受賞しました。

カテゴリーは、長くなった Visual Studio And えーっと。。。Development Technologies です。

もうね。覚えられないわけですよ。長すぎて。一部界隈では、VSDT と略されていたりもするようですが、なんか新しいの出た?という気がして何気に使うのが微妙というねw

 

ということで、12年目に突入です。

よろしくお願いします。

posted @ 11:39 | Feedback (2)

2016年9月29日 #

[Desktop App Converter]最新のWindows Insider Previewを適用したら

現地時間 9/28 に、Windows 10 Insider Preview Build 14936 が公開されました。

Build 14936 については https://blogs.windows.com/windowsexperience/2016/09/28/announcing-windows-10-insider-preview-build-14936-for-pc/ を見てもらうとして。。。

DesktopAppConverter はコンテナを使ってアプリケーションをインストールして差分情報を吸い上げます(吸い上げ精度が高すぎてそれいらねーよってのもいっぱいありますがw)。

その動作のために、専用のベースイメージがあります。

ということで、最新IPを導入したら検索。。。と思ったら、

http://aka.ms/converterimages が最新イメージに付け替えられていました。

これで検索しなくて済むぞ!という感じです。

ちなみに検索する場合はこちらのリンクをどうぞw

posted @ 13:20 | Feedback (0)

2016年9月28日 #

[Desktop App Converter] VC++ ランタイムを共有 appx としてリンクする

このブログでもずいぶん前にちらっと紹介した、VC++ ランタイムを共有APPXとして設定する方法を改めて。

公開当初はDesktopAppConverter 側が対応していなかったのですが、公開後のバージョン(0.1.24)から、自動取り込みに対応しています。

対応にはあらかじめランタイムパッケージ情報をセットアップしておく必要があります。

具体的には

から自分が必要なパッケージをDL&インストールする必要があります。

これらをインストールしたら、あとはmsi(exeでもよい)で、必要バージョンのVCランタイムのマージモジュール(中途半端でも検出してくれます。優秀ですw)をセットするか、Bundle やVSIの必須コンポーネントなどを利用して同時インストールするインストーラを用意してコンバートするだけです。

ちなみに、上記ランタイムがインストールされている環境で、コンバート時にモジュールを見つけると

AppxManifest.xml の Dependencies 項目が

<Dependencies>
  <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14393.0" MaxVersionTested="10.0.14393.0" />
  <PackageDependency Name="Microsoft.VCLibs.140.00.UWPDesktop" MinVersion="14.0.23810.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />
</Dependencies>

という感じになります(上記はVC14での例)。

簡単ですね。

 

一応。。。このブログエントリーを書くときに確認した範囲では、上記リンクより新しいバージョンはリリースされていませんでした。

posted @ 16:07 | Feedback (0)