2012-04-12 2 views
4

Je suis très nouveau à Unity3d et j'ai essayé d'ouvrir un projet existant. Pendant la lecture, l'erreur suivante apparaît.System.IO.File 'ne contient pas une définition de l'erreur' AppendAllText 'dans Unity3D?

Actif/Scripts/DataAccess.cs (39,30): erreur CS0117: System.IO.File' does not contain a definition for AppendAllText »

Je n'ai aucune idée sur la façon de résoudre ce problème. Je suis coincé ici.

Il serait appréciable si quelqu'un a résolu ce problème.

Merci à l'avance ...

+0

Il a été dans .NET depuis au moins 2 par l'aspect de [la documentation] (http://msdn.microsoft.com/en-us/library/system.io.file.appendalltext.aspx). Quelle version de Mono utilisez-vous? Est-ce que Monodroid est une version réduite du framework comme le framework compact .NET? – Rup

+0

Merci pour vos commentaires .. J'ai vu cette documentation de ce que je comprends j'ai besoin de .NET4. J'utilise Mono 2.8.2.Ya sa version réduite – GoCrazy

+0

Non, vous n'avez pas besoin de 4: Je devrais avoir lié à l'une des pages de surcharge qui disent 'Pris en charge dans: 4, 3.5, 3.0, 2.0', plus c'est aussi dans l'exécution de Silverlight. Si votre version réduite ne le supporte pas, alors je suppose que vous devrez le coder vous-même: il pourrait y avoir une implémentation .NET dans la source Mono non-coupée que vous pouvez voler? – Rup

Répondre

11

Je suis tombé sur ceci, où personne d'autre dans mon équipe ne pouvait le reproduire.

Nous ciblons la plate-forme iOS, et pour une raison quelconque, mes paramètres Build ont changé magiquement à Web Player. Changer ce retour à iOS a résolu le problème pour moi.

Sur Mac, je suis allé dans un fichier ==> paramètres de construction ...

L'icône « unité » était à côté de Web Player, donc je suis passé à iOS et cliquez sur le bouton « Switch Platform ». Il a réimporté un tas de choses et, quand cela a été fait, l'erreur du compilateur est partie.

0

Vous pouvez essayer File.AppendText:

using(StreamWriter sw = File.AppendText(
      Application.persistentDataPath + "error.log")) 
{ 
    sw.Write(e.ToString()); 
} 

Cela peut ne pas être la meilleure façon de le faire, mais cela devrait fonctionner. Je ne sais pas si AppendAllText inclut une nouvelle ligne implicite - ne semble pas à partir des docs - mais vous pourriez vouloir .WriteLine à la place.

+0

Merci pour votre réponse .. En fait, j'ai essayé aussi. Il ne semble pas fonctionner .. AppendAllText est dans docs http://msdn.microsoft.com/fr-fr/library/ms143356.aspx. vérifier ici .. – GoCrazy

+0

Désolé, je n'ai pas de meilleures idées. Quand vous dites ne pas travailler, vous voulez dire ne pas écrire dans le journal, ou lancer une exception, ou autre chose? – Rup

+0

Son continuer à jeter l'exception ... – GoCrazy

Questions connexes