IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual Studio Discussion :

Comment enlever la dépendance vers la Microsoft.VC80.DebugCRT ?


Sujet :

Visual Studio

  1. #1
    Membre du Club Avatar de masterx_goldman
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 51
    Points
    51
    Par défaut Comment enlever la dépendance vers la Microsoft.VC80.DebugCRT ?
    Bonjour,
    Je travaille sous Visual Studio 2005 et VS2008 , j'ai crée une application console en c++ et lorsque j'ajoute le projet de déploiement avec l'assistant de Visual Studio , il me détecte( ou il me génère , car je pense qu'il fait ça par défaut, ce n'est pas moi qui lui demandé de faire ça) des dépendances vers:

    1) Microsoft_VC80_DebugCRT_x86.msm
    2) policy_8_0_microsoft_vc80_debugcrt_x86.msm

    et voilà les fichiers manifest qu'il me génère:

    ********** myProg.exe.intermediate.manifest ***********
    <assemblyIdentity type='win32' name='Microsoft.VC80.DebugCRT' version='8.0.50727.762' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>

    ********** myProg.exe.embed.manifest ***********
    <assemblyIdentity type="win32" name="Microsoft.VC80.DebugCRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    Alors, je veux comprendre comment faire pour éliminer ces dépendances ?
    (notement la DebugCRT ... )
    En faite, sur la machine cibles, je n'ai pas Visual Studio donc pas de "Microsoft.VC80.DebugCRT" et même si ça existe , il y a le problème de versions ...
    Ce que je remarque, c'est que je peux exclure ces dépendance à la main, en cliquant sur le projet de déploiement , mais toujours dans les fichiers manifest, j'ai les mêmes dépendances !!

    voilà, j'arrive pas à faire cette indépendance correctement( si elle est faisable biensûr )

    Je suis prêt pour tout détail pouvant éclaircir plus mon problème,
    j'attends vos réponses

    Merci pour tout type d'aide

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Bonjour

    - Tu compiles bien en Release ?

    - S'agit-il d'une application C++ managée ou Win32 ?

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  3. #3
    Membre du Club Avatar de masterx_goldman
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 51
    Points
    51
    Par défaut
    Citation Envoyé par Bluedeep Voir le message

    - Tu compiles bien en Release ?
    Oui, je compile en Release , et pour être sûr si je fais bien la génération en "Release" je vais te dire comment je fais: je vais dans les propriétés de la solution ( qui contient les deux projets MonProg et SetupMonProg ) et je fixe le contexte des projets à générer à "Release" .

    S'il manque quelque chose à la configuration, je serai reconnaissant si tu me le dis.


    Citation Envoyé par Bluedeep Voir le message

    - S'agit-il d'une application C++ managée ou Win32 ?
    Il s'agit d'une application Win32 Console Application en c++ , je n'utilise pas les namespace .NET dans mon code.

    Détails
    *****
    Dans cette application, j'utilise des WebServices ( et même les WebServices sont fait en code natif , j'ai suivi un exemple de création de WebService sur msdn http://msdn.microsoft.com/fr-fr/libr...t2(VS.80).aspx )

  4. #4
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Ok.

    Essaye en allant dans les propriétés des projets (pas de la solution) :

    - configuration properties -> Linker -> Debugging -> Generate Debug Info -> FALSE.

    (sans garantie).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  5. #5
    Membre du Club Avatar de masterx_goldman
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 51
    Points
    51
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Ok.

    Essaye en allant dans les propriétés des projets (pas de la solution) :

    - configuration properties -> Linker -> Debugging -> Generate Debug Info -> FALSE.

    (sans garantie).

    J'ai fait ça et lorsque je regénère le tout, je reçoit les mêmes fichiers manifest que précédement avec

    <assemblyIdentity type="win32" name="Microsoft.VC80.DebugCRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>

    Je ne sais pas si ça veut dire la même chose ou pas , mais apparement oui

    Alors, ce qui parait c'est que se libérer de cette DebugCRT n'est pas aussi simple du tout

  6. #6
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    A vrai dire, je n'utilise le C++ non managé que pour des DLL exportant des fonctions précises (et numériquement très minoritaires au sein d'un projet), jamais pour une application compléte (le C# me convient très bien ) et n'ai jamais vu ce problème.

    Si tu essaye de spécifier cette DLL DebugCRT en exclusion explicite au niveau du linker il se passe quoi ?

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  7. #7
    Membre du Club Avatar de masterx_goldman
    Inscrit en
    Mai 2008
    Messages
    164
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 164
    Points : 51
    Points
    51
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    A vrai dire, je n'utilise le C++ non managé que pour des DLL exportant des fonctions précises (et numériquement très minoritaires au sein d'un projet), jamais pour une application compléte (le C# me convient très bien ) et n'ai jamais vu ce problème.
    J'apprécie le C# aussi , mais je n'ai pas le choix car l'application ne doit pas avoir la prérequi .NET ( car il y a encore ceux qui ne veulent pas installer la .NET sur leurs pc pré-historiques )

    Citation Envoyé par Bluedeep Voir le message
    Si tu essaye de spécifier cette DLL DebugCRT en exclusion explicite au niveau du linker il se passe quoi ?
    Je ne sais pas si j'ai bien compri ce que tu as voulu dire par ça , mais lorsque j'exclue ces deux "truc" .msm , et je regénère la soultion, j'obtient les mêmes config dans les fichiers manifest

    J'aimerai bien savoir aussi les roles des fichiers .manifest dans mon application

    remarque:
    sur msdn , j'ai trouvé deux liens dans ce contexte
    ****** Resolve Partial Assembly failed for Microsoft.VC80.DebugCRT ******
    http://social.msdn.microsoft.com/for...-0f47e41df00c/

    ****** How to: Deploy using a Setup and Deployment Project ******

    http://msdn.microsoft.com/en-us/libr...17(VS.80).aspx

    j'ai pas eu le temps pour lire et essayer tout mais cequi me gêne c'est que le dernier lien parle de l'installation de cette dll Debug dans les machines cibles dans les étapes de génération du projet d'install !!!
    Ce que je m'attendais à voir c'est comment s'en débrrasser une fois pour toute et non pas les mettres sur les machines cibles !!

    Merci pour vos réponses

  8. #8
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    J'observe le meme probleme : en compilant ma solution en mode release je trouve une reference sur une dll en mode Debug. (Microsoft.VC80.DebugCRT)

    Du coup, lorsque j'essaye d'executer ce programme sur un PC cible, j'ai l'erreur
    Impossible d'initialiser l'application...
    et dans les evenements systemes j'ai une erreur SideBySide
    L'assemblage dépendant Microsoft.VC80.DebugCRT ne peut pas être trouvé.
    La dernière erreur était
    L'assemblage référencé n'est pas installé sur votre système.
    Pourtant j'ai bien copié la bonne version de dll debug a la racine de l'exe et aussi dans le repertoire WinSxS.
    Comme cette solution a echoué je souhaite supprimer cette dependance mais comment doit on faire ?

    Extrait de mon assembly lors d'une compil en mode release :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.4053" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32" name="Microsoft.VC80.DebugCRT" version="8.0.50727.4053" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50727.762" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32" name="Microsoft.VC80.CRT" version="8.0.50608.0" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32" name="Microsoft.VC80.ATL" version="8.0.50727.4053" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly>
          <assemblyIdentity type="win32" name="Microsoft.VC80.MFC" version="8.0.50727.4053" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
        </dependentAssembly>
      </dependency>

  9. #9
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    en utilisant l'outil dumpbin j'ai reussi a trouver le composant qui faisait reference a cette DLL en Debug. Du coup j'ai coupé ce lien et je n'ai plus de Dependence vers le debug.

    J'ai trouvé des reponses ici egalement : http://social.msdn.microsoft.com/For...4-bf17adb27315

  10. #10
    Candidat au Club
    Inscrit en
    Avril 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Petites precisions suite aux differents MP.


    En fait dans ma solution j'ai une 40aines de projet et ils ne sont pas configurés tous de la meme facon.
    Du moins pour le projet principale :
    Dans les propriétés du projet:
    Général -> Utilisation des MFC : use standard Windows Libraires
    Général -> Utilisation des ATL : Not Using ATL
    Génération de code -> Bibliothèque RunTime : /MD

    mais j'ai constaté que certains projets etaient en /MT

    Détail: tous les projets doivent contenir la variable de preprocessor : NDEBUG

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/11/2012, 18h05
  2. Réponses: 1
    Dernier message: 16/02/2011, 23h52
  3. Réponses: 5
    Dernier message: 04/05/2009, 14h54
  4. erreur SideBySide (Microsoft.VC80.DebugCRT)
    Par Norin-Rad dans le forum Windows XP
    Réponses: 3
    Dernier message: 10/04/2008, 16h21
  5. Comment rediriger la sortie vers /dev/null
    Par dclink dans le forum C
    Réponses: 4
    Dernier message: 24/06/2003, 18h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo