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

C# Discussion :

Application en c# sur Mac


Sujet :

C#

  1. #1
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Par défaut Application en c# sur Mac
    Bonjour,

    Je suis actuellement en stage, ou je développe en C#, avec le framework 3.5 .
    J'ai fait une application windows form, mais maintenant mon chef de projet me demande de trouver un programme qui sache faire tourner mon programme en C# sous Mac OS.
    Cela est ce possible? ou faut il obligatoirement utilisé windows en VMware, ou BootCamp.

    J'ai essayé d'utilisé CrossOver sans succés.


    Merci d'avance pour votre aide,

    Michael

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    Compile ton code en Mono
    http://www.mono-project.com/Main_Page

  3. #3
    Membre éclairé Avatar de mioux
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2005
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 369
    Par défaut
    Pas besoin de le compiler avec mono

    Une fois mono installé, en ligne de commande :


  4. #4
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Par défaut
    En faite, ca a marché, mais j'ai pleins de lignes de bug dans mon terminal.

    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
    31
    32
    33
    34
    35
    ** (Sandbox.exe:3620): WARNING **: The following assembly referenced from /Users/monmac/Desktop/LeKiosque_XML/WindowsFormsApplication2/bin/Debug/Sandbox.exe could not be loaded:
         Assembly:   System.Windows.Forms.DataVisualization    (assemblyref_index=3)
         Version:    3.5.0.0
         Public Key: 31bf3856ad364e35
    The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/Users/monmac/Desktop/LeKiosque_XML/WindowsFormsApplication2/bin/Debug/).
     
     
    ** (Sandbox.exe:3620): WARNING **: Could not load file or assembly 'System.Windows.Forms.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
    System.TypeLoadException: A type load exception has occurred.
      at System.Windows.Forms.ToolStripItem.OnClick (System.EventArgs e) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.ToolStripMenuItem.OnClick (System.EventArgs e) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.ToolStripMenuItem.HandleClick (System.EventArgs e) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.ToolStripItem.FireEvent (System.EventArgs e, ToolStripItemEventType met) [0x00000] in <filename unknown>:0 
      at (wrapper remoting-invoke-with-check) System.Windows.Forms.ToolStripItem:FireEvent (System.EventArgs,System.Windows.Forms.ToolStripItemEventType)
      at System.Windows.Forms.ToolStrip.OnMouseUp (System.Windows.Forms.MouseEventArgs mea) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.ToolStripDropDown.OnMouseUp (System.Windows.Forms.MouseEventArgs mea) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.Control.WmLButtonUp (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.ScrollableControl.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.ToolStrip.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.ToolStripDropDown.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] in <filename unknown>:0 
    System.NullReferenceException: Object reference not set to an instance of an object
      at System.Windows.Forms.ToolStripDropDownMenu.CalculateConnectedArea () [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.ToolStripDropDownMenu.OnPaintBackground (System.Windows.Forms.PaintEventArgs e) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.Control.WmPaint (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.Control.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.ScrollableControl.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.ToolStrip.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.ToolStripDropDown.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.Control+ControlWindowTarget.OnMessage (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.Control+ControlNativeWindow.WndProc (System.Windows.Forms.Message& m) [0x00000] in <filename unknown>:0 
      at System.Windows.Forms.NativeWindow.WndProc (IntPtr hWnd, Msg msg, IntPtr wParam, IntPtr lParam) [0x00000] in <filename unknown>:0
    La si quelqu'un pouvait m'aider... parce que la je suis un peu perdu.

  5. #5
    Membre éclairé Avatar de mioux
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2005
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 369
    Par défaut
    Pas du tout, une application winform doit fontionner dans mono.

    Mono est bien installé ?

  6. #6
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Par défaut
    Oui, en faite ca a marché comme je l'ai écrit dans le post précédent, que j'ai éditer, je ne pensais pas avoir une réponse aussi rapidement. merci beaucoup.
    Par contre le probleme que j'ai maintenant persiste.

  7. #7
    Membre éclairé Avatar de mioux
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2005
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 369
    Par défaut
    Il manque l'assembly System.Windows.Forms.DataVisualization qui n'est peut être pas gérée actuellement par Mono

  8. #8
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Par défaut
    OK, merci beaucoup pour ton aide!

  9. #9
    Membre éclairé Avatar de mioux
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2005
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 369
    Par défaut
    Je viens de vérifier, l'asembly existe dans mono, donc il doit y avoir autre chose...

    Comment a été installé mono ?

    De mémoire, sur le mien je l'ai fais par macport...

    Est ce qu'il est possible d'avoir une copie du projet compilé ou c'est confidentiel ? je fais un test avec ma machine

  10. #10
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Par défaut
    Je ne peux pas vous passez la solution.

    Par contre pour l'installation de mono.
    J'ai télécharger le dernier Mono Framework, ainsi que MonoDevelop.
    Et j'obtiens une erreur du au chart

  11. #11
    Membre éclairé Avatar de mioux
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2005
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 369
    Par défaut
    en fait je pensais is au fichier exe qu'à la solution... (mais bien entendu si ce n'est pas possible, on va pas chercher plus loin )

    sinon en ouvrant le projet dans monodevelop, il y a des erreurs ?

  12. #12
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Par défaut
    Non, aucune erreur lors de l'ouverture de la solution dans MonoDevelop.
    Par contre, dès que je veux générer la solution, j'obtiens cette erreur :
    Error CS0234: The type or namespace name `DataVisualization' does not exist in the namespace `System.Windows.Forms'. Are you missing an assembly reference? (CS0234) (SandBox).

  13. #13
    Membre éclairé Avatar de mioux
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2005
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 369
    Par défaut
    et en essayant de le compiler dans une autre version de .net est ce que ça passe ? (en 2.0 si il n'y a aucune assembly spécifique 3.5 qui est chargée ou en 4.0, de mémoire monodevelop gère le framework 4.0)

    au passage monodevelop existe en version Windows (ainsi que mono) et est compatible avec le framework officiel (pas besoin d'installer mono framework).

  14. #14
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Par défaut
    j'ai tout recompilé en framework 4.0 .
    J'ai rajouté manuellement dans les réferences de mon projet
    system.windows.forms.datavizualisation.dll, du coup, lors de la compilation, je n'ai plus d'erreur, (seulement des avertissements...) mais lors de l'éxécution, j'obtiens cette erreur.

    Unhandled Exception: System.TypeInitializationException: An exception was thrown by the type initializer for System.Windows.Forms.Control ---> System.DllNotFoundException: user32.dll
    at (wrapper managed-to-native) System.Windows.Forms.SafeNativeMethods:RegisterWindowMessage (string)
    at System.Windows.Forms.Control..cctor () [0x00000] in <filename unknown>:0
    --- End of inner exception stack trace ---
    at System.Windows.Forms.Application.SetCompatibleTextRenderingDefault (Boolean defaultValue) [0x00000] in <filename unknown>:0
    at WindowsFormsApplication2.Program.Main () [0x00005] in /Users/monmac/Desktop/lk.1/Program.cs:17

  15. #15
    Membre éclairé Avatar de mioux
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2005
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2005
    Messages : 369
    Par défaut
    Il y a du code spécifique windows ? Des appels à une API windows ? (apparemment oui, puisqu'il ya besoin de user32.dll qui est une dll système de windows)

    Si oui, la solution mono n'est pas valable seule.

    Le mieux serait de retirer les appels aux API du code (surtout que je pense qu'il existe des alternatives natives en .Net pour ça)

    Une autre solution consiste à installer wine (via macports par exemple, infos par ici, jusqu'à la partie 3). Dans wine, installer mono (en version windows).

    Wine est un "émulateur" windows. Une fois installer, il faut lancer (en ligne de commande) :
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    wine programme.exe

    mais j'ai quand même un doute, parce que normalement, mono détecte que les programmes sont mixtes .Net/windows natif, et lance une erreur quand on essaie de démarrer un programme avec du code mixte.

    EDIT : Pour essayer de retrouver les fichier incriminés, il doit y avoir des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [DllImport("user32.dll")]
    qui chargent des dll externes

  16. #16
    Membre averti
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Par défaut
    Je vais essayer avec Wine.
    Merci beaucoup pour votre aide.

Discussions similaires

  1. Mon application crashe à la fermeture sur Mac
    Par michelblh52 dans le forum Qt
    Réponses: 2
    Dernier message: 06/10/2011, 21h22
  2. Publier une application sur mac store
    Par fghjk dans le forum Apple
    Réponses: 2
    Dernier message: 16/10/2009, 17h10
  3. Exporter application sur Mac 64 bit
    Par hyuu! dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 17/02/2009, 09h55
  4. Déploiement application Qt sur Mac OS X
    Par mercure07 dans le forum Qt
    Réponses: 5
    Dernier message: 27/01/2009, 14h34

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