3

Project Centennial コンバーター (つまり、デスクトップ ブリッジ) を使用して、Win32 アプリを UWP アプリに変換しようとしています。

アプリが変換されたら、AppxManifest.xmlファイルを調整して次のことを確認する必要があります。

  • すべてのアイコン形式が適切に構成されていること。

  • 英語 (米国)、ドイツ語、フランス語、ロシア語のアプリ リソースを適切に指定したこと。

そこで、この Windows 10 アイコン ガイドに従って、次の.png画像を作成し、すべてAssetsフォルダーに配置しました。私はこれらを手に入れました:

ここに画像の説明を入力

そして、私のAppxManifest.xmlものは次のように構成されていました:

<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2" xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10">
  <Identity Name="MyApp.Name" ProcessorArchitecture="x86" Publisher="CN=My Name, O=My Name, STREET=&quot;Street Address&quot;, L=City, S=State, PostalCode=12345, C=US" Version="1.2.3.4" />
  <Properties>
    <DisplayName>MyApp.Name</DisplayName>
    <PublisherDisplayName>PublisherName</PublisherDisplayName>
    <Logo>Assets\StoreLogo-50x50.png</Logo>
  </Properties>
  <Resources>
    <Resource Language="en-us" />
    <Resource Language="de-DE" />
    <Resource Language="fr-FR" />
    <Resource Language="ru-RU" />
  </Resources>
  <Dependencies>
    <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14342.0" MaxVersionTested="10.0.14342.0" />
  </Dependencies>
  <Capabilities>
    <rescap:Capability Name="runFullTrust" />
  </Capabilities>
  <Applications>
    <Application Id="MyApp.Name" Executable="VFS\Users\ContainerAdministrator\AppData\Local\PublisherName\App Name\RunFile.exe" EntryPoint="Windows.FullTrustApplication">
      <uap:VisualElements DisplayName="My App Name" Description="My app does this ... and this ..." 
                          BackgroundColor="#aabbcc" 
                          Square71x71Logo="Assets\AppNameSmallTile.png"
                          Square150x150Logo="Assets\AppNameMedTile.png"
                          Square310x150Logo="Assets\AppNameWideTile.png"
                          Square310x310Logo="Assets\AppNameLargeTile.png"
                          Square44x44Logo="Assets\AppNameAppList.png"
                          >
        <uap:DefaultTile>
          <uap:ShowNameOnTiles>
            <uap:ShowOn Tile="square150x150Logo" />
            <uap:ShowOn Tile="Square310x150Logo" />
            <uap:ShowOn Tile="Square310x310Logo" />
          </uap:ShowNameOnTiles>
        </uap:DefaultTile>
      </uap:VisualElements>
      <Extensions />
    </Application>
  </Applications>
</Package>

誰かがこれらの質問に答えることができます:

  1. 正しいサイズとスケーリングのアイコンを指定することについて、私は多少混乱しています。私はそれを正しくしましたか?

  2. Assets\StoreLogo-50x50.pngアイコンのスケーリングも指定する必要がありますか?

  3. 最後に、4 つの異なる言語のリソースを正しく指定しましたか?

EDITAppxManifest.xml :待っている間、私が示したアセットで上記をコンパイルしようとしました。しかし、makeappx.exeツールは私に次のエラーを与えます:

MakeAppx: エラー: エラー情報: エラー C00CE015: アプリ マニフェストの検証エラー: アプリ マニフェストはスキーマに従って有効である必要があります: 行 22、列 27、理由: 要素 '{ http://schemas.microsoftの属性 'Square71x71Logo' .com/appx/manifest/uap/windows10 }VisualElements' は DTD/スキーマで定義されていません。

次のアイコンのサイズは明らかに気に入りません。

Square71x71Logo
Square310x150Logo
Square310x310Logo

しかし、上記のアイコンサイズを から削除してもAppxManifest.xml、次のコマンドでパックしようとすると:

"C:\Program Files (x86)\Windows Kits\10\bin\x64\makeappx.exe" pack /d "path-to-folder-to-pack" /p "path-to\MyAppxPackage.appx"

スケーリング用のアセットの命名に関して、次のエラーが発生します。

MakeAppx : エラー: マニフェスト検証エラー: 行 22、列 27、理由: 要素 " [local-name()='Applications']/ [local-name()='に対して宣言されたファイル名 "Assets\AppNameMedTile.png" Application']/ [local-name()='VisualElements']" はパッケージに存在しません。このファイルに言語、スケール、コントラストなどの複数のバリエーションまたはリソース バージョンがある場合は、/l コマンド ライン オプションを使用してこの検証を無効にします。MakeAppx : エラー: マニフェスト検証エラー: 行 23、列 27、理由: 要素 " [local-name()='Applications']/ [local-name()='に対して宣言されたファイル名 "Assets\AppNameAppList.png"応用']/[local-name()='VisualElements']" はパッケージに存在しません。このファイルに言語、スケール、コントラストなどの複数のバリエーションまたはリソース バージョンがある場合は、/l コマンド ライン オプションを使用してこの検証を無効にします。 . MakeAppx : エラー: パッケージの作成に失敗しました. MakeAppx : エラー: 0x80080204 - 指定されたパッケージ形式が無効です: パッケージ マニフェストが無効です。

提案され/lたコマンドをそのまま使用する:

"C:\Program Files (x86)\Windows Kits\10\bin\x64\makeappx.exe" pack /l /d "path-to-folder-to-pack" /p "path-to\MyAppxPackage.appx"

多くの警告を表示してパッケージをビルドします。しかし、後でインストールすると、その中のすべてのアイコンが空白のようです。

ここで私が見逃しているものがあるに違いありませんか?

4

1 に答える 1

2

主な問題が 2 つあります。タイル イメージを間違った場所で定義していることと、resources.pri ファイルについてまったく話していないことです。

UAP スキーマはかなり複雑ですが、十分に文書化されているため、その要件を尊重してください。特に、uap:VisualElements 要素には画像属性Square150x150LogoSquare44x44Logo. 他のサイズを定義する場合は、子uap:DefaultTile 要素の属性に入ります。uap:ShowOn 要素の属性には、Square310x150Logo代わりに であるはずの誤った が含まれていることに注意してくださいwide310x150Logo

これを整理すると、makeappx は元のコマンド ラインで、つまり追加の/lパラメーターなしで成功するはずです。ただし、代替 DPI 画像を表示するには、これでは不十分です。そのためには、resources.pri ファイルを作成する必要があります。これを手動で行うには、makepri.exe を使用してテンプレート priconfig.xml を作成し、それを更新してから、makepri を再度呼び出して、そこから resources.pri を構築します。

または、resources.pri を使用してアプリ パッケージを作成するツール (Visual Studio など) を使用し、resources.pri を抽出してパッケージに追加します。相対パスは resources.pri ファイルに格納されているため、パッケージで使用する場所が、ツールによって作成されたパッケージ内の場所と一致していることを確認してください。(ボーナスとして、これが作成する AppxManifest.xml を見て、最初の部分の構造が正しいことを確認できます。デスクトップ ブリッジを使用するアプリには、Visual Studio が提供しない追加の名前空間と機能があることを忘れないでください。提供します。)

于 2016-10-13T01:45:20.240 に答える