Vous ne pouvez pas utiliser le logo du badge Scale-140 dans Visual Studio 2012 Update 1

Cet article vous aide à résoudre un problème où vous ne pouvez pas utiliser le logo de badge Scale-140 dans Microsoft Visual Studio 2012 Update 1.

Version du produit d’origine : Visual Studio Express 2012 pour Windows 8, Visual Studio Premium 2012, Visual Studio Ultimate 2012
Numéro de la base de connaissances d’origine : 2792380

Problème 1

Prenons l’exemple du scénario suivant :

  • Vous créez une application à l’aide de Visual Studio 2012 Update 1.
  • Vous sélectionnez un fichier de .png de 33 x 33 pixels pour le logo de badge Scale-140 pour l’application.
  • Vous essayez d’empaqueter l’application.

Dans ce scénario, vous ne pouvez pas empaqueter l’application. En outre, vous recevez un message d’erreur qui ressemble au suivant :

Le manifeste de l’application fait référence à l’image de logo de badge « images\BadgeLogo.scale-140.png » qui n’a pas de dimensions valides. Il doit être de 34 x 34 pixels.

Problème 2

Prenons l’exemple du scénario suivant :

  • Vous créez une application à l’aide de Visual Studio 2012 Update 1.
  • Vous sélectionnez un fichier de.png 34 x 34 pixels pour le logo de badge Scale-140 pour l’application.
  • Vous essayez d’envoyer cette application au Windows Store.

Dans ce scénario, vous ne pouvez pas envoyer l’application au Windows Store.

Cause

Ces problèmes se produisent car Visual Studio 2012 Update 1 nécessite un fichier .png de 34 x 34 pixels pour le logo du badge Scale-140. Toutefois, le Windows Store et le Kit de certification des applications Windows (WinACK) exigent que les fichiers image du logo de badge Scale-140 soient de 33 x 33 pixels.

Solution de contournement

Pour contourner ce problème, procédez comme suit :

  1. Dans Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis sélectionnez Décharger le projet.

  2. Cliquez avec le bouton droit sur le projet, puis sélectionnez Modifier.

  3. Ajoutez le code XML suivant au bas du fichier projet avant l’élément fermant </Project> :

    <!-- Workaround for 33x33 badge logo issue. -->
    <Target Name="WorkaroundForBadgeLogoScale140Issue">
        <ItemGroup>
            <AppxManifestImageFileNameQuery Remove="./m:Package/m:Applications/m:Application/m:VisualElements/m:LockScreen/@BadgeLogo" />
        </ItemGroup>
        <ItemGroup>
            <AppxManifestImageFileNameQuery Include="./m:Package/m:Applications/m:Application/m:VisualElements/m:LockScreen/@BadgeLogo">
                <DescriptionID>BadgeLogo</DescriptionID>
                <ExpectedScaleDimensions>100:24x24;140:33x33;180:43x43</ExpectedScaleDimensions>
            </AppxManifestImageFileNameQuery>
        </ItemGroup>
    </Target>
    
  4. Ajoutez le code XML suivant au bas du fichier projet avant l’élément fermant </Project> :

    Remarque

    Si votre fichier projet contient déjà une BeforeBuild cible, ajoutez WorkaroundForBadgeLogoScale140Issue à l’attribut DependsOnTargets .

    <Target Name="BeforeBuild" DependsOnTargets="WorkaroundForBadgeLogoScale140Issue" />
    
  5. Enregistrez et fermez le fichier projet.

  6. Dans Explorateur de solutions, cliquez avec le bouton droit sur le projet, puis sélectionnez Recharger le projet.

  7. Dans manifeste Designer, ajoutez un fichier de logo Scale-140 .png de 33 x 33 pixels.

Remarque

Manifeste Designer affiche un avertissement indiquant que le logo du badge ne répond pas à la taille requise de 34 x 34 pixels. Toutefois, Visual Studio empaquetera l’application et WinACK vous permet de publier l’application sur le Windows Store.