CORRECTIF : Sur un ordinateur exécutant .NET Framework 3.5 Service Pack 1, le compilateur JIT et Native Image Generator (Ngen.exe) qui utilisent le fichier Mscorjit.dll peuvent générer du code incorrect

Traductions disponibles Traductions disponibles
Numéro d'article: 957542 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Sommaire

Symptômes

Sur un ordinateur qui exécute le Microsoft.NET Framework 3.5 Service Pack 1 (SP1), juste-à-temps (JIT) compilateur et Native Image Generator (Ngen.exe) qui utilisent le fichier Mscorjit.dll peuvent générer du code incorrect. Par conséquent, une application C++ managée de 32 bits peut produire des résultats incorrects.

Ce problème se produit si les conditions suivantes sont remplies :
  • Le struct ou la classe dans le code source dispose de moins de quatre types scalaires et aucune référence d'objet managé.
  • Vous utilisez l'instruction Cpblk ou l'instruction Initblk.
Remarque : Ce problème ne se produit pas dans une application 64 bits.

Cause

Ce problème se produit en raison d'une régression dans le.NET Framework 3.5 SP1.

Résolution

Informations sur le correctif

Un correctif est disponible auprès de Microsoft. Toutefois, ce correctif est conçu uniquement pour corriger le problème décrit dans cet article. Appliquer ce correctif uniquement aux systèmes rencontrant ce problème spécifique. Ce correctif va peut-être subir des tests supplémentaires. Par conséquent, si vous n'êtes pas sérieusement concerné par ce problème, nous vous recommandons d'attendre la prochaine mise à jour logicielle qui comprendra ce correctif.

Pour télécharger ce correctif à partir de MSDN Code Gallery, visitez le site Web de Microsoft à l'adresse suivante :
http://code.msdn.Microsoft.com/KB957542

Remarque : MSDN Code Gallery affiche les langues pour lesquelles le correctif est disponible. Si vous ne voyez pas votre langue, c'est que la page de ressource de Code Gallery n'est pas disponible pour cette langue.

Remarque : Si des problèmes supplémentaires surviennent ou bien si une procédures de dépannage est requise, il est probable que vous ayez à effectuer une demande de service en parallèle. Les coûts habituels du support technique s'appliqueront aux autres questions et problèmes qui ne relèvent pas de ce correctif spécifique. Pour obtenir la liste complète des numéros de téléphone du Service clientèle de Microsoft et du Support vous permettant de créer une demande, reportez-vous au site Web de Microsoft à l'adresse suivante :
http://support.Microsoft.com/contactus/?ws=support
Remarque : Si vous avez une application 32 bits qui s'exécute sur une plateforme 64 bits, appliquez le correctif pour la version 64 bits résoudre ce problème.

Conditions préalables

Vous devez disposer de la version.NET Framework 3.5 SP1 installé pour appliquer ce correctif.

Redémarrage de l'ordinateur

Vous devrez peut-être redémarrer l'ordinateur si les fichiers qui sont mis à jour sont utilisés.

Informations de remplacement du correctif

Ce correctif ne remplace aucun autre correctif.

Informations sur les fichiers

La version anglaise de ce correctif possède les attributs de fichier (ou attributs ultérieurs de fichier ) répertoriés dans le tableau suivant. Les dates et heures de ces fichiers sont classées par rapport temps universel coordonné (UTC). Les informations du fichier sont converties en heure locale. Pour connaître la différence entre l'UTC et l'heure locale, utilisez la Fuseau horaire onglet dans la Date et heure élément dans le panneau de configuration.
Windows 2000, Windows XP et Windows Server 2003, versions x 86
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille du fichierDateHeure
Mscordacwks.dll2.0.50727.3068992,26416-Sep-200813:13
Mscorjit.dll2.0.50727.3068367,10416-Sep-200813:13
Mscorlib.dll2.0.50727.30684,546,56016-Sep-200813:13
Mscorwks.dll2.0.50727.30685,815,80816-Sep-200813:13
Windows 2000, Windows XP et Windows Server 2003, versions x 64
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille du fichierDateHeurePlate-forme
Mscordacwks.dll2.0.50727.3068992,26416-Sep-200813:13x 86
Mscorjit.dll2.0.50727.3068367,10416-Sep-200813:13x 86
Mscorlib.dll2.0.50727.30684,546,56016-Sep-200813:13x 86
Mscorwks.dll2.0.50727.30685,815,80816-Sep-200813:13x 86
Mscordacwks.dll2.0.50727.30681,767,94416-Sep-200810:33x 64
Mscorjit.dll2.0.50727.30681,580,03216-Sep-200810:33x 64
Mscorlib.dll2.0.50727.30684,562,94416-Sep-200810:33x 64
Mscorwks.dll2.0.50727.306810,079,74416-Sep-200810:33x 64
Windows 2000, Windows XP et Windows Server 2003, versions IA-64
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille du fichierDateHeurePlate-forme
Mscordacwks.dll2.0.50727.3068992,26416-Sep-200813:13x 86
Mscorjit.dll2.0.50727.3068367,10416-Sep-200813:13x 86
Mscorlib.dll2.0.50727.30684,546,56016-Sep-200813:13x 86
Mscorwks.dll2.0.50727.30685,815,80816-Sep-200813:13x 86
Mscordacwks.dll2.0.50727.30683,087,88016-Sep-200810:44IA-64
Mscorjit.dll2.0.50727.30682,560,51216-Sep-200810:44IA-64
Mscorlib.dll2.0.50727.30684,005,88816-Sep-200810:44IA-64
Mscorwks.dll2.0.50727.306820,153,85616-Sep-200810:44IA-64
Windows Vista Service Pack 1 (SP1) et Windows Server 2008, versions x 86
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille du fichierDateHeurePlate-forme
Mscorlib.resources.dll2.0.50727.3053352,25615-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053303,10415-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053299,00815-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053315,39227-Juil-200817:58x 86
Mscorlib.resources.dll2.0.50727.3053425,98415-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053307 20027-Juil-200817:58x 86
Mscorlib.resources.dll2.0.50727.3053299,00815-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053311,29627-Juil-200817:58x 86
Mscorlib.resources.dll2.0.50727.3053331,77615-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053315,39215-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053307 20027-Juil-200817:55x 86
Mscorlib.resources.dll2.0.50727.3053348,16027-Juil-200817:58x 86
Mscorlib.resources.dll2.0.50727.3053319,48827-Juil-200817:55x 86
Mscorlib.resources.dll2.0.50727.3053290,81615-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053303,10415-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053311,29615-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053303,10427-Juil-200817:55x 86
Mscorlib.resources.dll2.0.50727.3053307 20015-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.1434397,31211-Jan-200822:59x 86
Mscorlib.resources.dll2.0.50727.3053299,00815-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053299,00815-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053278,52827-Juil-200817:55x 86
Mscorlib.resources.dll2.0.50727.3053278,52827-Juil-200817:55x 86
Big5.nlpNon Applicable66,72818-Déc-200721:03Non Applicable
BOPOMOFO.nlpNon Applicable82,17218-Déc-200721:03Non Applicable
KSC.nlpNon Applicable116,75618-Déc-200721:04Non Applicable
Mscorlib.dll2.0.50727.30684,546,56001-Oct-200822:27x 86
Normidna.nlpNon Applicable59,34218-Déc-200721:05Non Applicable
Normnfc.nlpNon Applicable45,79418-Déc-200721:05Non Applicable
Normnfd.nlpNon Applicable39,28418-Déc-200721:05Non Applicable
Normnfkc.nlpNon Applicable66,38418-Déc-200721:05Non Applicable
Normnfkd.nlpNon Applicable60,29418-Déc-200721:05Non Applicable
PRC.nlpNon Applicable83,74818-Déc-200721:05Non Applicable
PRCP.nlpNon Applicable83,74818-Déc-200721:05Non Applicable
SortKey.nlpNon Applicable262,14818-Déc-200721:05Non Applicable
Sorttbls.nlpNon Applicable20,32018-Déc-200721:05Non Applicable
XJIS.nlpNon Applicable28,28818-Déc-200721:05Non Applicable
Mscordacwks.dll2.0.50727.3068992,26401-Oct-200822:27x 86
Mscorjit.dll2.0.50727.3068367,10424-Sep-200822:21x 86
Mscorwks.dll2.0.50727.30685,815,80801-Oct-200822:27x 86
Windows Vista SP1 et Windows Server 2008, versions x 64
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille du fichierDateHeurePlate-forme
Big5.nlpNon Applicable66,72818-Déc-200721:01Non Applicable
BOPOMOFO.nlpNon Applicable82,17218-Déc-200721:01Non Applicable
KSC.nlpNon Applicable116,75618-Déc-200721:02Non Applicable
Mscorlib.dll2.0.50727.30684,562,94401-Oct-200822:25x 64
Normidna.nlpNon Applicable59,34218-Déc-200721:03Non Applicable
Normnfc.nlpNon Applicable45,79418-Déc-200721:03Non Applicable
Normnfd.nlpNon Applicable39,28418-Déc-200721:03Non Applicable
Normnfkc.nlpNon Applicable66,38418-Déc-200721:03Non Applicable
Normnfkd.nlpNon Applicable60,29418-Déc-200721:03Non Applicable
PRC.nlpNon Applicable83,74818-Déc-200721:03Non Applicable
PRCP.nlpNon Applicable83,74818-Déc-200721:03Non Applicable
SortKey.nlpNon Applicable262,14818-Déc-200721:03Non Applicable
Sorttbls.nlpNon Applicable20,32018-Déc-200721:03Non Applicable
XJIS.nlpNon Applicable28,28818-Déc-200721:03Non Applicable
Mscordacwks.dll2.0.50727.30681,767,94401-Oct-200822:25x 64
Mscorjit.dll2.0.50727.30681,580,03224-Sep-200823:06x 64
Mscorwks.dll2.0.50727.306810,079,74401-Oct-200822:25x 64
Mscorlib.resources.dll2.0.50727.3053352,25615-Sep-200822:26x 86
Mscorlib.resources.dll2.0.50727.3053303,10415-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053299,00815-Sep-200822:26x 86
Mscorlib.resources.dll2.0.50727.3053315,39227-Juil-200818:02x 86
Mscorlib.resources.dll2.0.50727.3053425,98415-Sep-200822:26x 86
Mscorlib.resources.dll2.0.50727.3053307 20027-Juil-200818:02x 86
Mscorlib.resources.dll2.0.50727.3053299,00815-Sep-200822:26x 86
Mscorlib.resources.dll2.0.50727.3053311,29627-Juil-200818:02x 86
Mscorlib.resources.dll2.0.50727.3053331,77615-Sep-200822:26x 86
Mscorlib.resources.dll2.0.50727.3053315,39215-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053307 20027-Juil-200817:56x 86
Mscorlib.resources.dll2.0.50727.3053348,16027-Juil-200818:02x 86
Mscorlib.resources.dll2.0.50727.3053319,48827-Juil-200817:56x 86
Mscorlib.resources.dll2.0.50727.3053290,81615-Sep-200822:26x 86
Mscorlib.resources.dll2.0.50727.3053303,10415-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053311,29615-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053303,10427-Juil-200817:56x 86
Mscorlib.resources.dll2.0.50727.3053307 20015-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.1434397,31211-Jan-200822:59x 86
Mscorlib.resources.dll2.0.50727.3053299,00815-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053299,00815-Sep-200822:25x 86
Mscorlib.resources.dll2.0.50727.3053278,52827-Juil-200817:56x 86
Mscorlib.resources.dll2.0.50727.3053278,52827-Juil-200817:56x 86
Big5.nlpNon Applicable66,72818-Déc-200721:03Non Applicable
BOPOMOFO.nlpNon Applicable82,17218-Déc-200721:03Non Applicable
KSC.nlpNon Applicable116,75618-Déc-200721:04Non Applicable
Mscorlib.dll2.0.50727.30684,546,56001-Oct-200822:27x 86
Normidna.nlpNon Applicable59,34218-Déc-200721:05Non Applicable
Normnfc.nlpNon Applicable45,79418-Déc-200721:05Non Applicable
Normnfd.nlpNon Applicable39,28418-Déc-200721:05Non Applicable
Normnfkc.nlpNon Applicable66,38418-Déc-200721:05Non Applicable
Normnfkd.nlpNon Applicable60,29418-Déc-200721:05Non Applicable
PRC.nlpNon Applicable83,74818-Déc-200721:05Non Applicable
PRCP.nlpNon Applicable83,74818-Déc-200721:05Non Applicable
SortKey.nlpNon Applicable262,14818-Déc-200721:05Non Applicable
Sorttbls.nlpNon Applicable20,32018-Déc-200721:05Non Applicable
XJIS.nlpNon Applicable28,28818-Déc-200721:05Non Applicable
Mscordacwks.dll2.0.50727.3068992,26401-Oct-200822:27x 86
Mscorjit.dll2.0.50727.3068367,10424-Sep-200822:21x 86
Mscorwks.dll2.0.50727.30685,815,80801-Oct-200822:27x 86
Windows Vista SP1 et Windows Server 2008, versions IA-64
Réduire ce tableauAgrandir ce tableau
Nom de fichierVersion du fichierTaille du fichierDateHeurePlate-forme
Big5.nlpNon Applicable66,72818-Déc-200721:06Non Applicable
BOPOMOFO.nlpNon Applicable82,17218-Déc-200721:06Non Applicable
KSC.nlpNon Applicable116,75618-Déc-200721:06Non Applicable
Mscorlib.dll2.0.50727.30684,005,88801-Oct-200822:26IA-64
Normidna.nlpNon Applicable59,34218-Déc-200721:08Non Applicable
Normnfc.nlpNon Applicable45,79418-Déc-200721:08Non Applicable
Normnfd.nlpNon Applicable39,28418-Déc-200721:08Non Applicable
Normnfkc.nlpNon Applicable66,38418-Déc-200721:08Non Applicable
Normnfkd.nlpNon Applicable60,29418-Déc-200721:08Non Applicable
PRC.nlpNon Applicable83,74818-Déc-200721:08Non Applicable
PRCP.nlpNon Applicable83,74818-Déc-200721:08Non Applicable
SortKey.nlpNon Applicable262,14818-Déc-200721:08Non Applicable
Sorttbls.nlpNon Applicable20,32018-Déc-200721:08Non Applicable
XJIS.nlpNon Applicable28,28818-Déc-200721:08Non Applicable
Mscordacwks.dll2.0.50727.30683,087,88001-Oct-200822:26IA-64
Mscorjit.dll2.0.50727.30682,560,51224-Sep-200823:14IA-64
Mscorwks.dll2.0.50727.306820,153,85601-Oct-200822:26IA-64
Mscorlib.resources.dll2.0.50727.3053315,39227-Juil-200817:58x 86
Mscorlib.resources.dll2.0.50727.3053311,29627-Juil-200817:58x 86
Mscorlib.resources.dll2.0.50727.3053348,16027-Juil-200817:58x 86
Mscorlib.resources.dll2.0.50727.3053319,48827-Juil-200817:58x 86
Mscorlib.resources.dll2.0.50727.3053278,52827-Juil-200817:58x 86
Mscorlib.resources.dll2.0.50727.3053278,52827-Juil-200817:59x 86
Big5.nlpNon Applicable66,72818-Déc-200721:03Non Applicable
BOPOMOFO.nlpNon Applicable82,17218-Déc-200721:03Non Applicable
KSC.nlpNon Applicable116,75618-Déc-200721:04Non Applicable
Mscorlib.dll2.0.50727.30684,546,56001-Oct-200822:27x 86
Normidna.nlpNon Applicable59,34218-Déc-200721:05Non Applicable
Normnfc.nlpNon Applicable45,79418-Déc-200721:05Non Applicable
Normnfd.nlpNon Applicable39,28418-Déc-200721:05Non Applicable
Normnfkc.nlpNon Applicable66,38418-Déc-200721:05Non Applicable
Normnfkd.nlpNon Applicable60,29418-Déc-200721:05Non Applicable
PRC.nlpNon Applicable83,74818-Déc-200721:05Non Applicable
PRCP.nlpNon Applicable83,74818-Déc-200721:05Non Applicable
SortKey.nlpNon Applicable262,14818-Déc-200721:05Non Applicable
Sorttbls.nlpNon Applicable20,32018-Déc-200721:05Non Applicable
XJIS.nlpNon Applicable28,28818-Déc-200721:05Non Applicable
Mscordacwks.dll2.0.50727.3068992,26401-Oct-200822:27x 86
Mscorjit.dll2.0.50727.3068367,10424-Sep-200822:21x 86
Mscorwks.dll2.0.50727.30685,815,80801-Oct-200822:27x 86

Contournement

Pour contourner ce problème, appliquez l'une des méthodes suivantes.

Méthode 1

Si le code d'application ressemble à l'exemple de code dans la section « Informations complémentaires », recherchez la ligne suivante de code.
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d).m_x))
Modifiez cette ligne de code comme suit.
#define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d)))

Méthode 2

Déployer un fichier .ini. Pour ce faire, créez un fichier qui contient le code suivant.
[.NET Framework Debugging Control]
AllowOptimize=0
Nommez le fichier .ini le même que le module qui pose problème, mais utiliser l'extension .ini au lieu de l'extension .dll. Par exemple, pour l'exemple de code dans la section « Informations complémentaires », nommez le fichier .ini le fichier Bug.ini. Placez le fichier Bug.ini dans le même répertoire que le fichier Bug.dll.

Remarque : L'inconvénient de cette méthode est l'effet potentiel de performances pour aucune optimisation. Si vous utilisez Native Image Generator (Ngen.exe) pour précompiler le module, cette méthode n'est pas applicable.

Méthode 3

Appliquer de manière sélective l'option NoOptimization de l'énumération MethodImplOptions pour les méthodes qui pose problème à l'aide de la classe MethodImplAttribute .

Remarque : Cette méthode désactive les optimisations du compilateur JIT et Native Image Generator (Ngen.exe) sur un niveau par méthode. Combien les performances sont affectées varient en fonction de la méthode.

Statut

Microsoft a confirmé qu'il s'agit d'un problème pour les produits Microsoft répertoriés dans la section « S'applique à ».

Plus d'informations

Procédure pour reproduire le problème

  1. Créer une application C++ qui est basée sur le.NET Framework 3.5 SP1.
  2. Ajouter un fichier .cpp au projet, nommez ce fichier le fichier Bug.cpp et puis collez le code suivant dans le fichier Bug.cpp.
    #using <mscorlib.dll>
    #include <stdlib.h>
    class AcGeVector3d
    {
    double x, y, z;
    public:
    __forceinline AcGeVector3d(const AcGeVector3d& src): x(src.x),y(src.y),z(src.z)
    {
    }
    __forceinline AcGeVector3d(double xx, double yy, double zz) : x(xx),y(yy),z(zz)
    {
    }
    __forceinline AcGeVector3d operator / (double val) const
    {
    return AcGeVector3d (x/val, y/val, z/val);
    }
    };
    #define GETVECTOR3D(vec3d) (*reinterpret_cast<AcGeVector3d*>(&((vec3d).m_x)))
    namespace Geometry
    {
    [System::Runtime::InteropServices::StructLayout(System::Runtime::InteropServices::LayoutKind::Sequential)]
    public value class Vector3d
    {
    internal:
    double m_x, m_y, m_z;
    Vector3d(const AcGeVector3d* obj)
    {
    GETVECTOR3D(*this) = *obj;
    }
    public:
    Vector3d(double x, double y, double z):m_x(x),m_y(y), m_z(z) {}
    Vector3d DivideBy(double value)
    {
    return Vector3d(&GETVECTOR3D(*this).operator /(value));
    }
    virtual System::String^ ToString() override
    {
    return System::String::Format("{0}, {1}, {2}", m_x, m_y, m_z);
    }
    };
    }
    
  3. Pour compiler le fichier Bug.cpp, exécutez la commande suivante :
    cl /clr /GL/O2 bug.cpp /link /dll /out:bug.dll
  4. Créez un projet Microsoft Visual C# à utiliser en tant que le projet client.
  5. Nommez le fichier de code le fichier Test.cs et puis collez le code suivant dans le fichier Test.cs.
    using Geometry;
    namespace Test
    {
    class Tester
    {
    static void Main()
    {
    Vector3d v = new Vector3d(200, 200, 0);
    v = v.DivideBy(150);
    System.Console.WriteLine("{0}", v);
    }
    }
    }
    
  6. Pour compiler le fichier Test.cs, exécutez la commande suivante :
    csc /r:bug.dll test.cs
  7. Pour incorporer le manifeste dans le fichier Test.exe, exécutez la commande suivante :
    MT.exe - nologo-manifeste bug.dll.manifest-outputresource:test.exe;1
  8. Exécutez le fichier Test.exe.
Notez que le résultat réel est comme suit :
1.33333333333333, 1.333333333333, 0
Toutefois, le résultat attendu est la suivante :
1.33333333333333, 0, 0

Références

Pour plus d'informations sur la terminologie de mise à jour de logiciels, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
824684 Description de la terminologie standard utilisée pour définir les mises à jour logicielles de Microsoft

Propriétés

Numéro d'article: 957542 - Dernière mise à jour: lundi 11 février 2013 - Version: 3.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft .NET Framework 3.5 Service Pack 1
Mots-clés : 
kbexpertiseadvanced kbfix kbqfe kbmt KB957542 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 957542
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com