Hi, I’m new to Monogame and having hard time getting used to this framework.
I wanted to test cross-platform project in VS 2017, and somehow achieved this with ‘shared project’ way with shared content.
This is my shared project’s .projitem file right now :
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MSBuildAllProjects>$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<HasSharedItems>true</HasSharedItems>
<SharedGUID>...</SharedGUID>
</PropertyGroup>
<PropertyGroup Label="Configuration">
<Import_RootNamespace>MonoCrossShared</Import_RootNamespace>
</PropertyGroup>
<ItemGroup>
<Compile Include="$(MSBuildThisFileDirectory)EngineTest.cs" />
<Compile Include="$(MSBuildThisFileDirectory)Scenes\TestScene.cs" />
</ItemGroup>
<ItemGroup>
<MonoGameContentReference Include="$(MSBuildThisFileDirectory)Content\MonoCrossContent.mgcb" />
</ItemGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)Content\Monocle\MonocleDefault.spritefont" />
<None Include="$(MSBuildThisFileDirectory)Content\Monocle\MonocleDefault.xnb" />
<None Include="$(MSBuildThisFileDirectory)Content\MonoCrossContent.mgcb" />
</ItemGroup>
</Project>
So, OK, On Windows and Android Content.Load<> works well.
But when I try to load texture with Texture2D.FromStream() method, I get FileNotFoundException.
This is how I find path to raw .png file :
if (!File.Exists(Path.Combine(Game.Instance.Content.RootDirectory, ImagePath)))
throw new FileNotFoundException("Texture file does not exist: " + Path.Combine(Engine.Instance.Content.RootDirectory, ImagePath));
FileStream stream = new FileStream(Path.Combine(Game.Instance.Content.RootDirectory, ImagePath), FileMode.Open);
Texture2D tex = Texture2D.FromStream(Engine.Instance.GraphicsDevice, stream);
(*This is ripped from Matt Thorson’s Monocle Engine source code!)
I found out the reason is that in my target project’s build directory(ex. bin\Windows\x86\Debug\Content), there are only .xnb files, no .png files included. When I manually added .png files there, it loads well.
So, how can I add raw asset files to Content folder when I build project?