2012-04-12 24 views
4

我对Unity3d非常陌生,并试图打开一个现有的项目。播放时显示以下错误。System.IO.File'在Unity3D中不包含'AppendAllText'错误的定义?

资产/脚本/ DataAccess.cs(39,30):错误CS0117:System.IO.File' does not contain a definition for AppendAllText”

我没有关于如何解决这个任何想法。我被困在这里。

如果有人解决这个问题,这将是欣赏。

在此先感谢...

+0

从[文档](http://msdn.microsoft.com/en-us/library/system.io.file.appendalltext.aspx)的角度来看,至少在.NET中已经是.NET了。你正在使用哪个版本的Mono? Monodroid是像.NET Compact Framework这样的框架的缩减版本吗? – Rup 2012-04-12 10:33:14

+0

感谢您的意见..我已经看到,从我的文档理解我需要.NET4。我正在使用Mono 2.8.2.Ya其缩减版本 – GoCrazy 2012-04-12 11:11:39

+0

不,你不需要4:我应该链接到一个超载页面,其中说'支持:4,3.5,3.0,2.0',加上它也是在Silverlight运行时的缩减版中。如果你的精简版本不支持它,那么我想你必须自己编写代码:在你可以窃取的非缩减的Mono源代码中可能会有.NET实现。 – Rup 2012-04-12 11:13:49

回答

11

我遇到了这个问题,我的团队中没有其他人可以重现它。

我们针对的是iOS平台,出于某种原因,我的构建设置奇迹般地变回了Web Player。将此BACK更改为iOS可以解决此问题。

在Mac上,我去到文件==>构建设置...

“团结”的图标是下一个网络播放器,所以我把它切换到iOS和热播的“交换平台”按钮。它重新导入了一堆东西,当它完成时,编译器错误消失了。

0

您可以尝试File.AppendText

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

这也许不是这样做的最佳方式,但它应该工作。我不知道AppendAllText是否包含隐含的换行符 - 不会从文档中看到 - 但您可能需要改为.WriteLine

+0

谢谢您的回答..其实我已经尝试过这一点。它似乎没有工作.. AppendAllText是在文档http://msdn.microsoft。COM/EN-US /库/ ms143356.aspx。检查它在这里.. – GoCrazy 2012-04-12 12:18:21

+0

对不起,我没有任何更好的想法。当你说不工作时,你的意思是不写信给日志,或抛出异常或其他东西? – Rup 2012-04-12 12:42:17

+0

它继续抛出异常... – GoCrazy 2012-04-12 13:11:41

相关问题