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))
{
// ....
}
}
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:
This should be legal mono and .net code.
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.