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

VC++ .NET Discussion :

integration TimeZoneInfo system.core.dll


Sujet :

VC++ .NET

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 17
    Points : 15
    Points
    15
    Par défaut integration TimeZoneInfo system.core.dll
    Bonjour,

    Je rencontre le problème suivant :

    Je souhaite utiliser la classe : System::TimeZoneInfo.
    Mon code ne fonctionne pas quand je déclare un objet de cette classe.
    En cherchant sur le net, j'ai découvert que le projet n'avait pas chargé le fichier System.Core.dll du .net 3.5.
    J'ai donc rajouté ce dll en référence à mon projet.
    Le dll que j'ai ajouté est situé dans : "C:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\System.Core.dll"

    Quand je compile, le TimeZoneInfo est bien connu mais j'ai une erreur de compilation à ce niveau :

    stdafx.cpp : fatal error C1197: impossible de référencer 'c:\program files\microsoft.net\sdk\compactframework\v3.5\windowsce\mscorlib.dll', car le programme a déjà référencé 'c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll'
    J'ai cherché partout comment déréférencer ce dll de la version 2 pour garder celui de la version 3.5 mais j'ai pas trouvé.

    Avez-vous une idée pour corriger ce problème ?

    Sinon, si vous savez comment créer un projet "Windows Form" qui utilise les dll du framework 3.5 directement, je suis preneur !

    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 177
    Points : 12 305
    Points
    12 305
    Par défaut
    Vous êtes en train de faire de gros mélanges bien explosifs.

    Vous ne pouvez avoir dans une application managée qu'une version du framework .NET.

    La version du framework .NET est spécifiée dans les options du projet, pas dans les références du projet.

    Vous mélangez un projet ayant dans options pour utiliser une version 2 du Framework "Desktop" avec des références vers un assembly contenant le framework .NET pour une plateforme CompactFramework, c'est normal que VS ne soit pas d'accord.

    TimeZoneInfo est une classe qui a été ajouté au Framework "Desktop" en version 3.5. Il faut changer les options de votre projet.

    Avec les versions 2005 ou antérieures de VS, vous ne pouvez pas choisir la version du Framework, avec les versions postérieures, c'est dans les propriétés du projet que vous pouvez configurer la version cible du Framework .NET. (Et surtout pas en ajoutant, a l'arrache, des références vers des assemblies)

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2004
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Merci pour l'information mais je ne trouve pas cette option dans les propriétés du projet.

    Je fais : "menu projet->propriétés de [mon_projet]"
    Ensuite dans l'arborscence de gauche j'ai "propriétés communes" et "propriétés de configuration".

    Dans "propriétés communes" j'ai un champs "framework cible" avec un combobox dans lequel est déjà sélectionné "3.5".
    En revanche toutes les références utilisées (liste juste en dessous) pointent sur des dll qui sont dans le répertoire du framework 2.0

    Où cela se configure-t-il ?

    Merci pour votre aide

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 177
    Points : 12 305
    Points
    12 305
    Par défaut
    Effectivement, le changement de Framework après la création du projet n'est pas simple, contrairement aux projets C#.

    Vous avez donc un projet configuré en .NET3.5, la version des assembly sont en V2.0, c'est "normal", les versions 3.5 des classes (BCL) de .NET utilisent une CLR (Runtime) en version 2.0.

    J'ai aussi mal lu la documentation MSDN, TimeZoneInfo a bien été introduit en version 3.5 des BCL mais ne fait partie de la Runtime .NET qu'en version 4.0. Désolé .

    An 3.5, elle n'est pas dans la CLR mais dans l'assembly System.Core (mais dans le namespace System, tu parles d'un piège à c**). Il faut donc que vous utilisiez une version "Desktop" de cet assembly.

    J'ai sur ma machine ou seul VS2010 est installé, cet assemnly n'est présent que dans le GAC de la machine, pas dans l'arborescence de fichier de VS.

    Il suffit donc, normalement, de faire un clic sur le bouton "Add New Reference..." dans la section "Common Properties", de sélectionner l'onglet ".NET" et de cliquer sur la ligne "System.Core", VS fait de lui même le filtrage pour ne proposer que les versions correspondant à la BCL V3.5.

    Vous êtes à 3 clicks du bonheur.

Discussions similaires

  1. integration du systeme ged sous visual studio
    Par hishwest dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 06/03/2010, 17h40
  2. System.windows.dll introuvable dans Web Developer
    Par laurent_diep dans le forum Silverlight
    Réponses: 2
    Dernier message: 04/12/2008, 22h53
  3. Integration d'un fichier dll dans une application Java
    Par menzlitsh dans le forum Langage
    Réponses: 3
    Dernier message: 21/09/2006, 15h54

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