Page 2 of 4

Re: Noesis GUI in business application

Posted: 12 Apr 2017, 12:15
by GabrielStranak
This will work if you need to include only one architecture version of the library. But I need to include all three versions (ARM, x86, x64). When I place them in separate directories, the application will not be able to load them, because they will not be in the root folder.

Re: Noesis GUI in business application

Posted: 12 Apr 2017, 20:00
by GabrielStranak
I have now solution for including the correct library in the application package (AppX folder).
In short you need to modify .csproj file and add Link to the library with $(Platform) macro in the path:
<ItemGroup>
  <Content Include="..\ExternalReferences\NoesisGUI\uwp_$(Platform)\Noesis.dll">
    <Link>Noesis.dll</Link>
  </Content>
</ItemGroup>
For more information see the answer on Stack Overflow http://stackoverflow.com/a/43366687/7854753

Re: Noesis GUI in business application

Posted: 18 Apr 2017, 13:00
by sfernandez
Thanks for sharing, it would be very useful for others for sure :)

Re: Noesis GUI in business application

Posted: 18 Apr 2017, 18:22
by GabrielStranak
Now I'm trying to reference the Noesis library in iOS project, but I always get System.DllNotFoundException: Noesis.
The iOS uses static linking. So I have added NoesisGUI-ManagedSDK-2.0.0f1\Lib\ios\libNoesis.a library to Native References inside the iOS project. In the properties for this library I have set Force Load to True and Is C++ to True.
I have also tried other settings, but nothing did help.

What else do I need to do to make the native library available for the managed library?
Or is this problem of the simulator? I have tried it only in iOS simulator, because I didn't have any iOS device available.

Edit:
The main problem is that the Managed Library links to dynamic library. Fortunately the source code is prepared for linking with static library. So I had to compile the Managed Library from source with added UNITY_IPHONE in the Conditional compilation symbols under project Build properties.

But now I have new problem. I can no longer build the iOS project with the libNoesis.a library. I always get warning MSB3341: Could not resolve reference "Native References/libNoesis.a". This seems to be Xamarin problem, but I can't find any solution for it.

Re: Noesis GUI in business application

Posted: 25 Apr 2017, 02:40
by jsantos
For iOS you need to compile with full aot. Are you using that?
The main problem is that the Managed Library links to dynamic library. Fortunately the source code is prepared for linking with static library. So I had to compile the Managed Library from source with added UNITY_IPHONE in the Conditional compilation symbols under project Build properties.
Yes, sorry for this inconvenience. We will improve this in the next version.
But now I have new problem. I can no longer build the iOS project with the libNoesis.a library. I always get warning MSB3341: Could not resolve reference "Native References/libNoesis.a". This seems to be Xamarin problem, but I can't find any solution for it.
We haven't tried Xamarin iOS yet (but it should work because it is exactly the same library being used by Unity with mono and iOS). Is there a way you could generate a XCode project? We will try to provide a sample project with Xamarin in the following versions.

Re: Noesis GUI in business application

Posted: 25 Apr 2017, 08:29
by GabrielStranak
For iOS you need to compile with full aot. Are you using that?
Xamarin should do this automatically.
Yes, sorry for this inconvenience. We will improve this in the next version.
For the next version you should provide extra managed library versions for iOS and UWP. Ideally you should make NuGet package for Visual Studio that would configure project to use the correct library for each platform.
Is there a way you could generate a XCode project?
I don't think you can create XCode project when you are using Xamarin. Under Mac OSX you can use Xamarin Studio to code with Xamarin.
But I'm using Visual Studio with Xamarin under Windows. This connects to Mac OSX and builds the code there with XCode.

My problem is probably related to this bug https://bugzilla.xamarin.com/show_bug.cgi?id=43316
But it's strange, I could build the project before with the libNoesis.a library attached. Sometimes it would not build. But now I can't build it no matter how many times I try.

Maybe when I will have time I will try to create project in Xamarin Studio under Mac OSX and try it there.

Re: Noesis GUI in business application

Posted: 25 Apr 2017, 20:35
by jsantos
My problem is probably related to this bug https://bugzilla.xamarin.com/show_bug.cgi?id=43316
But it's strange, I could build the project before with the libNoesis.a library attached. Sometimes it would not build. But now I can't build it no matter how many times I try.
We didn't have time yet to properly test Xamarin but will do soon. One question though, when you say "before" you mean with a previous version of noesisGUI?

Re: Noesis GUI in business application

Posted: 26 Apr 2017, 08:34
by GabrielStranak
One question though, when you say "before" you mean with a previous version of noesisGUI?
With "before" I mean before I found out that I need to build the Noesis managed library for iOS. When I first wrote here in the forums about the iOS problem, I could build the project. But when I solved to first problem I could not build the project anymore. Every time I have used the same C++ library.
This does not seem to be Noesis problem, but Xamarin problem.

Re: Noesis GUI in business application

Posted: 23 Feb 2018, 06:32
by flownthecoop
Was anyone able to get this working with xamarin?

Re: Noesis GUI in business application

Posted: 23 Feb 2018, 08:13
by GabrielStranak
I had to abandon this solution, because it's not ready to be used as replacement UI for Xamarin Forms or Native UI. There are too many things that you would need to solve first before it would be usable for Non-Game applications.
I would really like to see Noesis GUI to evolve to be viable replacement for Xamarin Forms, but I don't know if the developers are willing to invest resources to make it happen.