デスクトップ ブリッジと VC ランタイムについて

Windows 10 Fall Creators Update がリリースされて、Visual Studio 2017 も Fall Creators Update 対応の 15.4 がリリースされています。今回は、Visual C++ のランタイムと デスクトップ ブリッジの関係を整理します。Visual C++ ランタイムとデスクトップ ブリッジの関係は、アプリのパッケージ化の準備というドキュメントにも記載がありますが、要点だけに焦点を当てます。Visual C++ 11(Visual Studio 2012) から Visual Studio 2017(VC14) とデスクトップ ブリッジの関係を示します。 VS バージョン VC バージョン 備考 2012 VC11 ダウンロード センター 2013 VC12 ダウンロード センター 2015 VC14 ダウンロード センター 2017 VC14 VS に含まれます Visual C++…

0

KB4025342 と DAC について

大分、更新が滞っておりました。2017年7月に KB4025342 がリリースされてから、Desktop App Converter で変換を行うと「E_STARTING_ISOLATED_ENV_FAILED(time out)」というエラーが発生します。KB4025342 をアンインストールすると、変換が問題なく終了することから、パッチか Windows コンテナのイメージの互換性がなくなったかのどちらかと思われます。この問題に関するブログ エントリがありました。 このエントリによると、ダウンロード センターより BaseImage-15063-UPDATE.wim をダウンロードして、ベース イメージを入れ替えて下さいとあります。入れ替えるためには、以下の2種類のコマンドを使用します。 ベース イメージの削除:「DesktopAppConverter –Cleanup ExpandedImage」 ベース イメージのインストール:「DesktopAppConverter –Setup –BaseImage “フルパス\BaseImage-15063-UPDATE.wim”」 この問題は、Windows 10 ビルド 15063.486 以降では、ベース イメージがビルド 15063.483 以降を要求するためです。 削除する前のベース イメージは 15063.0 になっています。ベース イメージを入れ替えれば、Desktop App Converter による変換は成功しますが、もう 1 つ問題が発生します。それは、Desktop App Converter が出力するフォルダに関するアクセス権限(ACL)によって、「PackageFiles\AppxManifest.xml」を使って「Add-AppxPackage -Register AppxManifest.xml」コマンドでインストールしたアプリを起動しようとすると、「パラメータが間違っています」というエラーが発生することです。これは、アクセス権限の問題ですので、解決方法は次の2種類のどれかになります。 出力先のフォルダをカレントにして「icacls * /t /reset」コマンドでアクセス権限をリセットする。 Windows エクスプローラーを使って、出力先のフォルダのアクセス権限を修正する。 アクセス権限を変更するのは、サインインしたユーザーに対してフル…

0

Desktop Bridge と Windows 10 S について

2017年5月2日に Windows 10 S と Surface Laptop が発表されました。 当初は日本語の FAQ のストア アプリの説明に「Desktop Bridge 対応のアプリも含む」と記載されていました。この記述は、英語版の FAQ に記載がなっかたことが理由かどうかは知りませんが、現在は「Windows ストア アプリ」とだけ記載されています。また、Build 2017 では、現在の Linux SubSystem を使った SUSE や Fedora なども Windows ストアから配信されると発表がありました。Winodws 10 S でコマンドラインの扱いがどうなるかについては、コマンドライン チームが Windows 10 S では動作しないと明言しています。具体的には、以下のようなものは動作しないことが確認できています。 コマンド ライン(cmd.exe) PowerShell (powershell.exe) レジストリ エディタ(regedit.exe) etc つまり、OS に影響を与える可能性のあるプログラムが動作しないようにロック ダウンされているのが、Windows 10 S という OS になります。Windows ストア から配信される Desktop…

0

DAC と PRI リソースについて

English Follow (Added at 2-Feb). 以前に Desktop App Converter で変換したアプリで、スケーリング対応アセットを使用する方法を解説しました。先週頃(1/23の週)に DAC アプリが、バージョン 1.0.6 にアップデートされました。ドキュメント上は、Icon Extraction とクリーン アップの向上、バグ対応とだけ記載されていますが、使ってみて大きな変更点と言えるのが、提供されるアイコンなどのリソースの扱い方が変更されたことです。具体的には、次のような変更が行われています。 アイコンの種類が大幅に増えたこと AppLargeTile.scale-xxx.png, AppList..scale-xxx.png, AppMedTile.scale-xxx.png, AppSmallTile.scale-xxx.png, AppWideTile.scale-xxx.png, AppStoreLogo.scale-xxx.png, AppList.targetsize-xxx.png, scale は、100、125、150、200、400 の 5 種類で targetsize は、16、24、32、48、256 で通常と altform-unplated の 2 種類のために 10 種類になっています。エントリー ポイントの実行ファイル (EXE) にアイコン リソースが含まれていると、アイコン リソースから自動生成されます。 スケーリング対応による AppxManifest.xml への影響 Resource 要素の uap:Scale に 100、125、150、200、400 を定義。 各種のアセット名は、スケーリング対応(ファイル名に scale-xxx…

0

DAC で バッチ ファイルを使うには

今回は、Desktop App Converter(DAC) に指定するインストーラをバッチ ファイルにする方法を説明します。以前から、試して見ようと考えていましたが、なかなか作業ができていなかったものになります。最初に、変換するためのインストーラとして、以下のようなフォルダ構造があると仮定します。 C:\Work\BAT フォルダ : 変換の作業フォルダー C:\Work\BAT\Input フォルダ : インストーラなどを配置するフォルダMyApp.exe : 実行ファイルInstall.bat : インストール用のバッチ ファイル Install.bat には、次のような内容を記述しています。 mkdir “%ProgramFiles%\MyApp” xcopy “.\*” “%ProgramFiles%\MyApp” /S /E exit 0 xcopy コマンドのソースに「.\*」のように、カレントからの相対パスを記述しているのが重要な点になります。 この準備ができたら、DAC を管理者権限で起動して、次のように入力します。 cd C:\Work\BAT DesktopAppConverter.exe -Installer “.\Input\Install.bat” -Destination “.” -AppInstallPath “C:\Program Files\MyApp” -AppExecutable “C:\Program Files\MyApp\MyApp.exe” -PackageName “myapp” -Publisher “CN=myapp” -Version “0.0.0.1” -Vervos パラメータが長いので折り返していますが、カレントを変更して、DACのコマンドをワン ライナーで入力します。このコマンドでの特徴は次のようになります。…

0

Windows 互換性ガイドブックを公開しました

お待たせしました。という方が正しいような気がしますが(何年も待たせるのという声が聞こえてきそうです)、Windows 8.1 と Windows Server 2012 R2 に対応した Windows 互換性ガイドブックの翻訳版を公開しました。この公開に合わせて、Windows 10 の互換性ガイドブックも Anniversary Update 関係で更新しています。 日本語版の互換性ガイドブックは、Technet の Windows 10 法人向け技術情報まとめ ページに掲載してあります。 何年も Windows 8.1 に対応した互換性ガイド ブックが公開されなかった経緯ですが、 Windows 8 と Windows Server 2012 互換性ガイドブックが、Windows 7 以前からのマイグレーション用に翻訳されて公開されていました。 Windows 8.1 がリリースされた時に、新しい互換性ガイドブックが翻訳されませんでした。 翻訳されなかったため、互換性ガイドブックのダウンロード センターのページでは、英語版を選択すると Windows 8.1 の Cookbook がダウンロードできて、日本語版を選択すると Windows 8 と Windows Server 2012 互換性ガイドブックのダウンロードができました。 ダウンロード センターのコンテンツの整理作業が行われた時に、日本語版のWindows 8…

0

DsktopBrigde (DACを含む) サンプルについて

今回は、Desktop App Converter のチュートリアル的なサンプルであり、DesktopBridge Sample を紹介します。具体的には、実際のコードを見て頂くとして、この記事ではどのようなサンプルが提供されていて、どのような構造になっているかを解説します。 最初の入門として見るのは、HelloWorldSample か JourneyAcrossTheBridge のサンプルになります。 HelloWorldSample cs フォルダと CentennialPackage フォルダが含まれており、cs フォルダが C# のコンソール アプリケーションになっており、CentennialPackage フォルダは、手作業でAppxを作成するための Appx レイアウト フォルダになっています。このサンプルでは、Desktop App Converter を使用することなく、デスクトップ アプリを Appx パッケージにすることを学習するためのものになっています。 JourneyAccrossTheBridge このサンプルには、ステップ1からステップ5までの5種類が含まれています。学習の流れで説明すると、ステップ1 から ステップ 3が、Windows Forms のデスクトップ アプリを Appx 化 (ステップ1) して、タイル更新を追加(ステップ2)、バックグラウンド タスクを追加(ステップ3) と順番に既存のデスクトップ コードを機能拡張する流れになっています。 ステップ 4 以降は、それまでの流れではなく、UWP のアプリから デスクトップのコードを アプリ サービスとして使用し(ステップ4)、完全な UWP アプリへの移行(ステップ 5)となっています。 ステップ1…

0

アプリのスケーリング対応アセットについて

TechSummit では、「デスクトップ アプリを Windows ストアで公開するには」というお話をさせていただきました。この話では、Desktop App Converter (以降は、DAC と略します)を使用して、インストーラを Appx に変換したり、変換できるアプリの条件などを色々と説明しました。色々な作業を得てから、最終的なアプリに仕上げる時に必要になるタイル アイコンなどを説明するのが、今回の話題になります。 タイルなどのアセットの詳細は、「タイルとアイコン アセットのガイドライン」に詳しく説明があります。内容を読むと、スケール ベースとターゲット ベースのアセットがあることが理解できます。 スケール ベース xxxxxx.scale-100.png など、スケーリングの倍率(100、200、400、etc)に応じて切り替えるアセット。 ターゲットベース xxxxxx.targetseize-16.png など、ターゲット サイズに応じて切り替えるアセット(正方形)で、エクスプローラなどの Windows のシステム側で使用するものになります。 Visual Studio 2015 で UWP アプリのプロジェクトを作成すると、自動的にスケール ベースのアセットなどが使用できる状態になっていますので、使用するアセットをプロジェクトに追加していくことで、ターゲット サイズのアセットなども使えるようになります。ちなみに、UWP プロジェクトを新規で作成した時に、テンプレートが作成するアセットは次のものになっています。 LockScreenLogo.scale-200.png SplashScreen.scale-200.png Square44x44Logo.scale-200.png Squrae44x44Logo.targetsize-24_altform.png Square150x150Logo.scale-200.png StoreLogo.png Wide310x150Logo.scale-200.png つまり、ロックスクリーン、スプラッシュ スクリーン、小さいタイル、正方形タイル、ワイドタイルと システム用のターゲット サイズのアセット、ストア ロゴの 7 つが含まれています。一方で、DAC で作成した アプリに含まれているのは、次のようなアセットになります。 SampleAppx.44×44.png (44px x 44px)…

0

F# ブート キャンプが開催されます

2016年11月19日に、イギリスのケンブリッジより来日した Tomas Petrics さんが参加する F# Boot Camp が開催されます。Tomas さんは、Microsoft Research で Don Syme さん(F#の言語設計者)と一緒にF#の言語設計に携わっており、F# Foundation の設立メンバーでもあり、F#の啓発活動を幅広く実施されいます。プログラミング言語の開発に携わった方のお話を聞ける機会ですので、ご興味のある方は是非、ご参加ください。 そして、前日の11月18日の夜には、F#談話室が開催されます。F#談話室は、無償の勉強会ですが、Tomasさんが参加されます。通訳者はいませんが、下手な英語でもTomasさんとコミュニケーションしてみませんか?

0

Microsoft Tech Summit へ参加させていただきます

11月1日から11月2日に Microsoft Tech Summit が開催されます。このイベントで、急遽、セッションを持つことになりました。「Desktop App Converter で変換したアプリの公開方法」と題して、お話をさせていただきます。9月に正式公開された Desktop App Converter Ver 1.0 を使って、デスクトップ アプリの変換方法から、サイドローディング、そしてストアへ公開するにはどうしたら良いかという話題を説明します。ご興味がありましたら、ご参加ください。

0