Program Issues Going From Unity To HoloLens - Cannot convert from 'string' to 'System.IO.Stream'

大兔子大兔子 提交于 2019-12-20 02:54:43

问题


I have a program written in Unity using C# that initializes a new StreamReader and proceeds to read the text data from a text file I have stored in Unity's resources folder. Everything works fine when I click play in Unity -everything works and the text is read and displayed perfectly. However, when I try to build it in order to run it via the HoloLens emulator (Platform: Windows Store, SDK: Universal 10, Build and Run On: Local Machine), I get the error: error CS1503: Argument 1: cannot convert from 'string' to 'System.IO.Stream'.

I don't understand why this error is even showing up in the first place as the constructor for a StreamReader has an overload that accepts a string parameter.

My code is as follows:

string metadata = String.Format("/Resources/.../metadata.txt", list);
if (File.Exists(Application.dataPath + metadata))
{
     using (StreamReader sr = new StreamReader(Application.dataPath + metadata))
            {
                  // ....
            }
}

回答1:


I agree with the others, this is likely caused by a diffence between mono in the editor and the .net that you are compiling with to get a UWP application. Try this instead:

using(StreamReader sr = new StreamReader(new FileStream(Application.dataPath + metadata, FileMode.Open)))

This should be legal mono and .net code.




回答2:


The API differs in some cases between Unity Mono and .NET on UWP. It could be the StremReader(string) ctor is missing from the UWP version.

For instance, I had a case where Delegate.CreateInstance works in Editor but fails on Hololens and requires a different version.

You can wrap things in macros or use the one UWP requires.



来源:https://stackoverflow.com/questions/40572063/program-issues-going-from-unity-to-hololens-cannot-convert-from-string-to-s

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!