デスクトップ アプリケーションをパッケージ化の準備します。Prepare to package a desktop application

この記事では、デスクトップ アプリをパッケージ化する前に理解しておく必要のあることについて説明します。This article lists the things you need to know before you package your desktop app. アプリケーションをパッケージ化プロセスの準備に多くの作業をする必要はありませんが、以下の項目のいずれか該当する場合、アプリケーション、パッケージ化の前に対処する必要があります。You might not have to do much to get your application ready for the packaging process, but if any of the items below applies to your application, you need to address it before packaging. ライセンスと自動更新は Microsoft Store で処理されるため、これらのタスクに関連した機能はコードベースから削除できます。Remember that the Microsoft Store handles licensing and automatic updating for you, so you can remove any features that relate to those tasks from your codebase.


(そうでない場合は、デスクトップ ブリッジと呼ばれます)、デスクトップ アプリケーションの Windows アプリ パッケージを作成する機能は Windows 10 バージョン 1607 で導入され、Windows 10 Anniversary Update (10.0; をターゲットとするプロジェクトでのみ使用できます。ビルド 14393) 以降の Visual Studio でリリースされます。The ability to create a Windows app package for your desktop application (otherwise known as the Desktop Bridge) was introduced in Windows 10, version 1607, and it can only be used in projects that target Windows 10 Anniversary Update (10.0; Build 14393) or a later release in Visual Studio.

  • アプリケーションには、.NET 4.6.2 より前のバージョンが必要ですYour application requires a version of .NET earlier than 4.6.2. アプリケーションが .NET 4.6.2 上で実行されているかどうかを確認する必要があります。You need to make sure your application runs on .NET 4.6.2. 4.6.2 より前のバージョンを要求したり、再配布したりすることはできません。You cannot require or redistribute versions earlier than 4.6.2. これは、Windows 10 Anniversary Update で出荷された .NET のバージョンです。This is the version of .NET that shipped in the Windows 10 Anniversary Update. アプリケーションがこのバージョンで動作を確認するとにより、アプリケーションは Windows 10 の今後の更新プログラムと互換性が引き続きされます。Verifying your application works on this version will ensure that your application will continue to be compatible with future updates of Windows 10. アプリケーションが .NET Framework 4.0 以降を対象と .NET 4.6.2 上で実行することが予想しますが、まだテストする必要があります。If your application targets the .NET Framework 4.0 or later, it is expected to run on .NET 4.6.2 but you should still test it.

  • 管理者特権のセキュリティ権限で常にアプリケーションを実行__します。__Your application always runs with elevated security privileges. アプリケーションは、対話ユーザーとして実行中に動作する必要があります。Your application needs to work while running as the interactive user. Microsoft Store からアプリをインストールするユーザーには、標準ユーザーに対する正しく実行できない方法で管理者特権で実行するアプリケーションを必要とするため、システム管理者しないがあります。Users who install your application from the Microsoft Store may not be system administrators, so requiring your application to run elevated means that it won't run correctly for standard users. 機能の一部で昇格を必要とするアプリは、Microsoft Store では受け入れられません。Apps that require elevation for any part of their functionality won't be accepted in the Microsoft Store.

  • アプリケーションは、カーネル モード ドライバーや Windows サービスが必要ですYour application requires a kernel-mode driver or a Windows service. ブリッジはアプリには適していますが、システム アカウントで実行する必要があるカーネル モード ドライバーや Windows サービスはサポートしていません。The bridge is suitable for an app, but it does not support a kernel-mode driver or a Windows service that needs to run under a system account. Windows サービスの代わりに、バックグラウンド タスクを使います。Instead of a Windows service, use a background task.

  • アプリのモジュールが、Windows アプリ パッケージに含まれていないプロセスに読み込まれるインプロセスであるYour app's modules are loaded in-process to processes that are not in your Windows app package. これは許可されていません。つまり、シェルの拡張機能などのインプロセスの拡張機能はサポートされていません。This isn't permitted, which means that in-process extensions, like shell extensions, aren't supported. ただし、同じパッケージに 2 つのアプリが含まれている場合に、そのアプリ間でプロセス間通信することはできます。But if you have two apps in the same package, you can do inter-process communication between them.

  • アプリケーションは、カスタム アプリケーション ユーザー モデル ID (AUMID) を使用__します。__Your application uses a custom Application User Model ID (AUMID). 場合は、プロセスは、独自の AUMID を設定するSetCurrentProcessExplicitAppUserModelIDを呼び出し、アプリケーション モデル環境/windows アプリ パッケージで生成された AUMID しか使えませんが可能性があります。If your process calls SetCurrentProcessExplicitAppUserModelID to set its own AUMID, then it may only use the AUMID generated for it by the application model environment/Windows app package. カスタムの AUMID を定義することはできません。You can't define custom AUMIDs.

  • アプリが HKEY_LOCAL_MACHINE (HKLM) レジストリ ハイブを変更__します。__Your application modifies the HKEY_LOCAL_MACHINE (HKLM) registry hive. しようとしたり、アプリケーションを HKLM キーを作成するか、変更のための 1 つを開いて、アクセス拒否エラーが発生します。Any attempt by your application to create an HKLM key, or to open one for modification, will result in an access-denied failure. アプリケーションが独自のプライベート仮想化されたビュー、レジストリのユーザーやマシン全体レジストリ ハイブ (HKLM は) の概念は適用されないので注意してください。Remember that your application has its own private virtualized view of the registry, so the notion of a user- and machine-wide registry hive (which is what HKLM is) does not apply. HKLM を使って実現していたことを、HKEY_CURRENT_USER (HKCU) に書き込むなど別の方法で実現する必要があります。You will need to find another way of achieving what you were using HKLM for, like writing to HKEY_CURRENT_USER (HKCU) instead.

  • アプリケーションが別のアプリを起動する手段として ddeexec レジストリ サブキーを使用__します。__Your application uses a ddeexec registry subkey as a means of launching another app. 代わりに、アプリ パッケージ マニフェストのさまざまなアクティブ化可能* な拡張機能で構成する DelegateExecute verb ハンドラーの 1 つを使います。Instead, use one of the DelegateExecute verb handlers as configured by the various Activatable* extensions in your app package manifest.

  • AppData フォルダーまたはレジストリを別のアプリとデータを共有するために、アプリケーションに書き込みますYour application writes to the AppData folder or to the registry with the intention of sharing data with another app. 変換後、AppData はローカル アプリ データ ストアにリダイレクトされます。このストアは、各 UWP アプリのプライベート ストアです。After conversion, AppData is redirected to the local app data store, which is a private store for each UWP app.

    アプリケーションが HKEY_LOCAL_MACHINE レジストリ ハイブに書き込んだすべてのエントリは、分離されたバイナリ ファイルにリダイレクトされ、アプリケーションが HKEY_CURRENT_USER レジストリ ハイブに書き込んだすべてのエントリは、プライベート ユーザーごと、アプリごとの場所に配置されます。All entries that your application writes to the HKEY_LOCAL_MACHINE registry hive are redirected to an isolated binary file and any entries that your application writes to the HKEY_CURRENT_USER registry hive are placed into a private per-user, per-app location. ファイルとレジストリのリダイレクトの詳細については、「デスクトップ ブリッジの内側」をご覧ください。For more details about file and registry redirection, see Behind the scenes of the Desktop Bridge.

    プロセス間データ共有に別の方法を使います。Use a different means of inter-process data sharing. 詳しくは、「設定と他のアプリ データを保存して取得する」をご覧ください。For more info, see Store and retrieve settings and other app data.

  • アプリケーションが、アプリのインストール ディレクトリに書き込むYour application writes to the install directory for your app. たとえば、アプリケーションは、exe と同じディレクトリに格納されているログ ファイルに書き込みます。For example, your application writes to a log file that you put in the same directory as your exe. この書き込みは、サポートされていないため、ローカル アプリ データ ストアなどの別の場所にする必要があります。This isn't supported, so you'll need to find another location, like the local app data store.

  • アプリケーションのインストールには、ユーザーの操作が必要ですYour application installation requires user interaction. アプリケーションのインストーラーはサイレントで実行できる必要があり、インストールのすべての前提条件をクリーンな OS イメージに既定では存在しない必要があります。Your application installer must be able to run silently, and it must install all of its prerequisites that aren't on by default on a clean OS image.

  • アプリケーションが現在の作業ディレクトリを使用__します。__Your application uses the Current Working Directory. ランタイムでパッケージ化されたデスクトップ アプリケーションは、デスクトップで以前に指定したと同じ作業ディレクトリを取得しません。LNK ショートカットです。At runtime, your packaged desktop application won't get the same Working Directory that you previously specified in your desktop .LNK shortcut. 適切なディレクトリは、アプリケーションが正常に機能するための重要な場合に、実行時に CWD を変更する必要があります。You need to change your CWD at runtime if having the correct directory is important for your application to function correctly.

  • アプリで UIAccess が必要__になります。__Your application requires UIAccess. アプリケーションが UAC マニフェストの requestedExecutionLevel 要素で UIAccess=true を指定している場合の UWP への変換は現在サポートされていません。If your application specifies UIAccess=true in the requestedExecutionLevel element of the UAC manifest, conversion to UWP isn't supported currently. 詳しくは、「UI オートメーション セキュリティの概要」をご覧ください。For more info, see UI Automation Security Overview.

  • アプリケーションは、COM オブジェクトを公開__します。__Your application exposes COM objects. パッケージ内のプロセスと拡張機能は、インプロセスとアウト プロセス (OOP) の両方で、COM サーバーおよび OLE サーバーを登録して使用できます。Processes and extensions from within the package can register and use COM & OLE servers, both in-process and out-of-process (OOP). Creators Update では、Packaged COM のサポートが追加されています。これにより、パッケージ外部で表示されるようになった OOP COM サーバーおよび OLE サーバーを登録できるようになります。The Creators Update adds Packaged COM support which provides the ability to register OOP COM & OLE servers that are now visible outside the package. COM サーバーおよび OLE ドキュメントのデスクトップ ブリッジ用サポートに関するブログをご覧ください。See COM Server and OLE Document support for Desktop Bridge.

    Packaged COM のサポートは、既存の COM API に使用できますが、Packaged COM の場所はプライベートであるため、レジストリの読み取りに直接依存するアプリケーションの拡張機能には使用できません。Packaged COM support works with existing COM APIs, but will not work for application extensions that rely upon directly reading the registry, as the location for Packaged COM is in a private location.

  • アプリケーションが他のプロセスで使用する GAC アセンブリを公開__します。__Your application exposes GAC assemblies for use by other processes. 現在のリリースで、アプリケーションは、Windows アプリ パッケージ外部の実行可能ファイルから生成されたプロセスで使用する GAC アセンブリを公開することはできません。In the current release, your application cannot expose GAC assemblies for use by processes originating from executables external to your Windows app package. パッケージ内のプロセスは、通常どおり、GAC アセンブリを登録して使用できますが、外部からは認識されません。Processes from within the package can register and use GAC assemblies as normal, but they will not be visible externally. つまり、OLE などの相互運用機能のシナリオは、外部プロセスによって呼び出された場合、機能しません。This means interop scenarios like OLE will not function if invoked by external processes.

  • アプリがサポートされていない方法では、C ランタイム ライブラリ (CRT) にリンク__しています。__Your application is linking C runtime libraries (CRT) in an unsupported manner. Microsoft C/C++ ランタイム ライブラリは、Microsoft Windows オペレーティング システムのプログラミングのルーチンを提供します。The Microsoft C/C++ runtime library provides routines for programming for the Microsoft Windows operating system. これらのルーチンは、C および C++ 言語では提供されない、多くの一般的なプログラミング タスクを自動化します。These routines automate many common programming tasks that are not provided by the C and C++ languages. アプリで C/C++ ランタイム ライブラリを使用している場合は、サポートされている方法でリンクされていることを確認する必要があります。If your application utilizes C/C++ runtime library, you need to ensure it is linked in a supported manner.

    Visual Studio 2017 は、現在のバージョンの CRT に対して、コードで共通の DLL ファイルを使用できるようにするダイナミック リンクと、コードに直接ライブラリをリンクするスタティック リンクの両方をサポートしています。Visual Studio 2017 supports both static and dynamic linking, to let your code use common DLL files, or static linking, to link the library directly into your code, to the current version of the CRT. 可能であれば、アプリケーションの使用をダイナミック リンク VS 2017 をお勧めします。If possible, we recommend your application use dynamic linking with VS 2017.

    以前のバージョンの Visual Studio でのサポートは異なります。Support in previous versions of Visual Studio varies. 詳しくは、次の表をご覧ください。See the following table for details:

    Visual Studio のバージョンVisual Studio versionダイナミック リンクDynamic linkingスタティック リンクStatic linking
    2005 (VC 8)2005 (VC 8)サポートされないNot supportedサポートされるSupported
    2008 (VC 9)2008 (VC 9)サポートされないNot supportedサポートされるSupported
    2010 (VC 10)2010 (VC 10)サポートされるSupportedサポートされていますSupported
    2012 (VC 11)2012 (VC 11)サポートされるSupportedサポートされないNot supported
    2013 (VC 12)2013 (VC 12)サポートされるSupportedサポートされないNot supported
    2015 および 2017 (VC 14)2015 and 2017 (VC 14)サポートされるSupportedサポートされていますSupported

    注: すべての場合、する必要がありますにリンクする最新の一般公開されている CRT します。Note: In all cases, you must link to the latest publicly available CRT.

  • アプリケーションをインストールし Windows のサイド バイ サイド フォルダーからアセンブリを読み込みますYour application installs and loads assemblies from the Windows side-by-side folder. たとえば、アプリケーションは、C ランタイム ライブラリ VC8 または VC9 を使用し、つまり、コードが共有フォルダーから共通の DLL ファイルを使用して、Windows サイド バイ サイド フォルダーからリンクに動的には、します。For example, your application uses C runtime libraries VC8 or VC9 and is dynamically linking them from Windows side-by-side folder, meaning your code is using the common DLL files from a shared folder. これはサポートされていません。This is not supported. 再頒布可能なライブラリ ファイルをコードに直接リンクして、静的にリンクする必要があります。You will need to statically link them by linking to the redistributable library files directly into your code.

  • アプリケーションが System32/SysWOW64 フォルダーで依存関係を使用__します。__Your application uses a dependency in the System32/SysWOW64 folder. DLL が機能するためには、Windows アプリ パッケージの仮想ファイル システム部分にそれらの DLL を含める必要があります。To get these DLLs to work, you must include them in the virtual file system portion of your Windows app package. これにより、アプリケーションが、Dll がSystem32にインストールされていたかのように動作する/SysWOW64フォルダー。This ensures that the application behaves as if the DLLs were installed in the System32/SysWOW64 folder. パッケージのルートで VFS という名前のフォルダーを作成します。In the root of the package, create a folder called VFS. そのフォルダー内に、SystemX64 フォルダーと SystemX86フォルダーを作成します。Inside that folder create a SystemX64 and SystemX86 folder. SystemX86 フォルダーに DLL の 32 ビット バージョンを格納し、SystemX64 フォルダーに 64 ビット バージョンを格納します。Then, place the 32-bit version of your DLL in the SystemX86 folder, and place the 64-bit version in the SystemX64 folder.

  • アプリが VCLibs フレームワーク パッケージを使っているYour app uses a VCLibs framework package. VCLibs 11 ライブラリは、Windows アプリ パッケージで依存関係として定義されている場合、Microsoft Store から直接インストールできます。The VCLibs libraries can be directly installed from the Microsoft Store if they are defined as a dependency in the Windows app package. たとえば、アプリが Dev11 VCLibs パッケージを使用した場合、次に変更を加えるアプリケーション パッケージのマニフェスト: 下、<Dependencies>ノードを追加します。For example, if your application uses Dev11 VCLibs packages, make the following change to your application package manifest: Under the <Dependencies> node, add:
    <PackageDependency Name="Microsoft.VCLibs.110.00.UWPDesktop" MinVersion="11.0.24217.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />
    Microsoft Store からインストールするとき、アプリをインストールする前に VCLibs フレームワークの適切なバージョン (x86 または x64) がインストールされます。During installation from the Microsoft Store, the appropriate version (x86 or x64) of the VCLibs framework will get installed prior to the installation of the app.
    サイドローディングによって、アプリケーションがインストールされている場合、依存関係がインストールしないされます。The dependencies will not get installed if the application is installed by sideloading. コンピューター上に依存関係を手動でインストールするには、デスクトップ ブリッジ用の適切な VCLibs フレームワーク パッケージをダウンロードしてインストールする必要があります。To install the dependencies manually on your machine, you must download and install the appropriate VCLibs framework package for Desktop Bridge. これらのシナリオについて詳しくは、Centennial プロジェクトで Visual C++ ラインタイムを使用する方法に関するページをご覧ください。For more information about these scenarios, see Using Visual C++ Runtime in a Centennial project.

    フレームワーク パッケージ:Framework Packages:

  • アプリにカスタム ジャンプ リストが含まれていますYour application contains a custom jump list. ジャンプ リストを使用する場合は、いくつかの問題と注意事項があります。There are several issues and caveats to be aware of when using jump lists.

    • アプリのアーキテクチャが OS と一致しない。Your app's architecture does not match the OS. ジャンプ リスト現在正しく機能していないアプリケーションと OS のアーキテクチャが一致しない場合 (x86、x64 で実行されているアプリケーション Windows)。Jump lists currently do not function correctly if the application and OS architectures do not match (e.g., an x86 application running on x64 Windows). この時点ではありません回避策以外のアーキテクチャを一致アプリケーションを再コンパイルします。At this time, there is no workaround other than to recompile your application to the matching architecture.

    • アプリケーションがジャンプ リストの項目を作成しicustomdestinationlist:またはSetCurrentProcessExplicitAppUserModelIDを呼び出しますYour application creates jump list entries and calls ICustomDestinationList::SetAppID or SetCurrentProcessExplicitAppUserModelID. プログラムによって AppID をコードに設定しないでください。Do not programmatically set your AppID in code. そうすると、ジャンプ リストの項目が表示されません。Doing so will cause your jump list entries to not appear. アプリケーションはカスタム Id が必要な場合は、マニフェスト ファイルを使用してを指定します。If your application needs a custom Id, specify it using the manifest file. 手順については、デスクトップ アプリケーションを手動でパッケージを参照してください。Refer to Package a desktop application manually for instructions. アプリケーションの AppID は YOUR_PRAID_HERE セクションに指定されます。The AppID for your application is specified in the YOUR_PRAID_HERE section.

    • アプリケーションは、パッケージの実行可能ファイルを参照するジャンプ リスト シェル リンクを追加__します。__Your application adds a jump list shell link that references an executable in your package. ジャンプ リストから直接、パッケージ内の実行可能ファイルを起動することはできません (アプリ自体の .exe の絶対パスを使用する場合は除く)。You cannot directly launch executables in your package from a jump list (with the exception of the absolute path of an app’s own .exe). 代わりに、(パスに同じように、キーワードを使って開始する場合は、パッケージ化されたデスクトップ アプリケーションを許可する) をアプリの実行エイリアスを登録し、代わりに、エイリアスをリンク先のパスを設定します。Instead, register an app execution alias (which allows your packaged desktop application to start via a keyword as though it were on the PATH) and set the link target path to the alias instead. AppExecutionAlias 拡張機能の使用方法について詳しくは、 Windows 10 によるデスクトップ アプリケーションの統合を参照してください。For details on how to use the appExecutionAlias extension, see Integrate your desktop application with Windows 10. 元の .exe に一致するジャンプ リストのリンク アセットが必要な場合は、他のカスタム項目と同様に、SetIconLocation を使用してアイコンなどのアセットを設定し、PKEY_Title を使用して名前を表示します。Note that if you require assets of the link in jump list to match the original .exe, you will need to set assets such as the icon using SetIconLocation and the display name with PKEY_Title like you would for other custom entries.

    • アプリケーションは、絶対パスを使用して、アプリのパッケージ内のアセットを参照するジャンプ リストの項目を追加__します。__Your application adds a jump list entries that references assets in the app's package by absolute paths. アプリケーションのインストール パスは、そのパッケージが更新される、アセット (アイコン、ドキュメント、実行可能ファイル、およびなど) などの場所を変更するときに変更できます。The installation path of an application may change when its packages are updated, changing the location of assets (such as icons, documents, executable, and so on). ジャンプ リストの項目を絶対パスでこのようなアセットを参照するかどうかは、アプリケーションがそのジャンプ リストを定期的に (アプリケーションの起動など) を更新する必要がありますパスが正しく解決されるようにします。If jump list entries reference such assets by absolute paths, then the application should refresh its jump list periodically (such as on application launch) to ensure paths resolve correctly. または、UWP Windows.UI.StartScreen.JumpList API を使用します。この API では、package-relative ms-resource URI スキーマ (これは言語、DPI、ハイ コントラストにも対応します) を使用して、文字列アセットと画像アセットを参照できます。Alternatively, use the UWP Windows.UI.StartScreen.JumpList APIs instead, which allow you to reference string and image assets using the package-relative ms-resource URI scheme (which is also language, DPI, and high contrast aware).

  • アプリケーションがタスクを実行するユーティリティを開始__します。__Your application starts a utility to perform tasks. PowerShell や Cmd.exe など、コマンド ユーティリティの起動は避けてください。Avoid starting command utilities such as PowerShell and Cmd.exe. 実際には、ユーザーは、Windows 10 S を実行するシステム上にアプリケーションをインストールする場合、アプリケーションできませんを一切起動します。In fact, if users install your application onto a system that runs the Windows 10 S, then your application won’t be able to start them at all. Windows 10 秒と互換性が必要なすべてのアプリを Microsoft ストアに提出するため、Microsoft Store に申請からアプリケーションがブロックされる可能性がこのThis could block your application from submission to the Microsoft Store because all apps submitted to the Microsoft Store must be compatible with Windows 10 S.

ユーティリティの起動は、オペレーティング システムからの情報の取得、レジストリへのアクセス、システム機能へのアクセスなどを行うための手段として便利であることが少なくありません。Starting a utility can often provide a convenient way to obtain information from the operating system, access the registry, or access system capabilities. ただし、このような作業を実行するには、代わりに UWP API を使用することができます。However, you can use UWP APIs to accomplish these sorts of tasks instead. これらの Api は、実行するには別に実行可能ファイルは必要ありませんが、さらに、アプリケーションとパッケージ外に到達から続けるために、高パフォーマンスのします。Those APIs are more performant because they don’t need a separate executable to run, but more importantly, they keep the application from reaching outside of the package. アプリの設計の分離、信頼性、セキュリティ パッケージ化して、アプリケーションの Windows 10 秒を実行しているシステムでは正しく動作するアプリケーションに付属するいると一貫性を維持します。The app’s design stays consistent with the isolation, trust, and security that comes with an application that you've packaged, and your application will behave as expected on systems running Windows 10 S.

  • 、アプリケーションのホストで、アドイン、プラグイン、アドイン、または拡張機能__です。__Your application hosts add-ins, plug-ins, or extensions. 多くの場合、COM スタイルの拡張機能は、引き続き動作します。ただし、拡張機能がパッケージ化されておらず、完全信頼としてインストールされている場合に限られます。In many cases, COM-style extensions will likely continue to work as long as the extension has not been packaged, and it installs as full trust. これらのインストーラーが、完全に信頼できる機能を使用してレジストリを変更し、ホスト アプリケーションがそれらを参照する場合は、いつでも拡張ファイルを配置するためです。That's because those installers can use their full-trust capabilities to modify the registry and place extension files wherever your host application expects to find them.

    ただし、これらの拡張機能は、パッケージ化、Windows アプリ パッケージとしてインストールされた場合、正しく動作しません (ホスト アプリケーションと拡張機能) は、各パッケージが相互の分離されるためです。However, if those extensions are packaged, and then installed as a Windows app package, they won't work because each package (the host application and the extension) will be isolated from one another. に関する詳細をどのようにアプリケーションはシステムから分離された、デスクトップ ブリッジの内側を参照してください。To read more about how applications are isolated from the system, see Behind the scenes of the Desktop Bridge.

    Windows 10 S を実行するシステムにユーザーがインストールするすべてのアプリケーションおよび拡張機能は、Windows アプリ パッケージとしてインストールされる必要があります。All applications and extensions that users install to a system running Windows 10 S must be installed as Windows App packages. したがって、拡張機能をパッケージ化する、またはパッケージ化を奨励する場合、ホスト アプリケーションのパッケージと拡張機能パッケージをすべての間の通信を促進する方法を検討します。So if you intend to package your extensions, or you plan to encourage your contributors to package them, consider how you might facilitate communication between the host application package and any extension packages. 1 つの方法として、アプリ サービスを使用することもできます。One way that you might be able to do this is by using an app service.

  • アプリケーションがコードを生成__します。__Your application generates code. アプリケーションは、メモリの消費されるコードを生成できますが、ディスクに生成されたコードを避けるため、Windows アプリ認定プロセスがアプリの申請する前に、そのコードを検証できないためです。Your application can generate code that it consumes in memory, but avoid writing generated code to disk because the Windows App Certification process can't validate that code prior to app submission. Windows 10 秒を実行するシステムでディスクにコードを記述するアプリを正しく動作しませんも、Windows 10 秒と互換性が必要なすべてのアプリを Microsoft ストアに提出するため、Microsoft Store に申請からアプリケーションがブロックされる可能性がこのAlso, apps that write code to disk won’t run properly on systems running Windows 10 S. This could block your application from submission to the Microsoft Store because all apps submitted to the Microsoft Store must be compatible with Windows 10 S.


Windows アプリ パッケージを作成したら、Windows 10 秒を実行するシステムで正しく動作するために、アプリケーションをテストしてください。すべてのアプリを Microsoft Store に提出する必要があります互換性がある互換性のない Windows 10 秒のアプリをストアで受け入れられません。After you've created your Windows app package, please test your application to ensure that it works correctly on systems that run Windows 10 S. All apps submitted to the Microsoft Store must be compatible with Windows 10 S. Apps that aren't compatible won't be accepted in the store. Windows アプリの Windows 10 S 対応をテストする」をご覧ください。See Test your Windows app for Windows 10 S.

次のステップNext steps

質問に対する回答を見つけるFind answers to your questions

ご質問がある場合は、Have questions? Stack Overflow でお問い合わせください。Ask us on Stack Overflow. Microsoft のチームでは、これらのタグをチェックしています。Our team monitors these tags. こちらから質問することもできます。You can also ask us here.

フィードバックの提供または機能の提案を行うGive feedback or make feature suggestions

UserVoice のページをご覧ください。See UserVoice.

デスクトップ アプリの Windows アプリ パッケージを作成するCreate a Windows app package for your desktop app

Windows アプリ パッケージを作成する」をご覧ください。See Create a Windows app package