Error Adding MvvmCross NuGet package to PCL in VS2013 - mvvmcross

When I try to install MvvmCross on my PCL, I get the error message below. I am running Visual Studio 2013 and the Xamarin Frameworks are installed for the PCLs.
I'm using Profile78, which targets .net framework 4.5, windows store apps (windows 8) and higher, Windows Phone 8, Xamarin.Android, and Xamarin.iOS.
Is there a better profile for me to use?
Could not install package 'MvvmCross.PortableSupport 3.0.13'. You are trying to install this package into a project that targets 'portable-net45+wp80+win+MonoAndroid10+MonoTouch10', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.

This area is changing with many new releases from many different places. I don't believe there are any definitive answers here today. There's a walkthrough using the latest platforms on http://slodge.blogspot.co.uk/2013/11/quick-run-through-using-pcls-in.html
That walkthrough uses:
Xamarin - iOS 1.8 & Android 4.10
Nuget - 2.7.2
MvvmCross - 3.0.14-beta3
Visual Studio 2012
portable profile 158
Other setups may also work - I don't know if anyone knows which is "better" - but it would be interesting to hear opinions!

Related

NU1202: MySql.Data.Entity isn't compatible with monoandroid81

I am trying to start my first Xamarin project and I got some issue while trying to install the MySqlEntity NuGet package.
Severity Code Description Project File Line Suppression State
Error NU1202 Package MySql.Data.Entity 6.10.8 is not compatible with monoandroid81 (MonoAndroid,Version=v8.1). Package MySql.Data.Entity 6.10.8 supports: net452 (.NETFramework,Version=v4.5.2) Refo_T3.Android C:\Users\evyat\source\repos\Refo_T3\Refo_T3\Refo_T3.Android\Refo_T3.Android.csproj 1
I tried this solution: Xamarin.Android: Package XX is not compatible with monoandroid81 (MonoAndroid,Version=v8.1)
and I still end up with errors.
It's my first application on Xamarin platform, I used to code in .NET but I decided to test my luck with Xamarin.
I couldn't find any more useful information online and I need your better experience.
Thank You :)
As written on the nuget packages page, the package is only available for .net framework >= 4.5.2
So you can't install it for Xamarin Android project only classic desktop .Net Framework applications.

Cant use NuGet to add Unity IoC to a portable class library

I am making a Windows Phone 8 application, however because I would like at some point to also publish this application for Windows 8.1 store I made the effort to factor out the application logic into a portable class library. All good so far.
Now being a good boy I want to use an IoC container, unity by preference (since I am familiar with it in desktop and Win Phone 8 only apps)
So here's my problem; the NuGet Unity package will not install into my portable application with this result:
Installing 'Unity 3.0.1304.1'.
Successfully installed 'Unity 3.0.1304.1'.
Adding 'Unity 3.0.1304.1' to Logic.
Uninstalling 'Unity 3.0.1304.1'.
Successfully uninstalled 'Unity 3.0.1304.1'.
Install failed. Rolling back...
Could not install package 'Unity 3.0.1304.1'. You are trying to install this package into a
project that targets 'portable-net45+wp80+win', but the package does not contain any assembly
references or content files that are compatible with that framework. For more information,
contact the package author.
So is there a unity that works with a PCL? or is this just a shortcoming of the NuGet package?
I failed to find any useful documentation on the P&P website to indicate what platforms it is compatible with, but I know it does support WP8 at the least since the NuGet package is quite happy with libraries targeting just that.
Any guidance from the community would be very welcome here I don't want to abandon using a PCL for my app logic if I can avoid it, but if it comes down to a toss up between that and NuGet for package management I will in order to keep the NuGet goodness.
Could this be related to NuGet and Portable Class Libraries - Package doesn't target any framework? that seems more related to making your own NuGet packages for use in your own PCLs.
Unity 3.0.1304.1 does not contain any PCL assemblies so you will not be able to install it into a PCL project using NuGet.
The Unity NuGet package contains assemblies that target the following frameworks:
.NETFramework 4.5
.NETCore 4.5 (Windows Store/WinRT)
Windows Phone 8
You can see these target frameworks if you open the NuGet package into NuGet Package Explorer or download the NuGet package and open it using a program that supports zip files such as 7zip or Windows built-in zip file support.
So your possible options are:
Just use Unity in your main Windows Phone 8 application.
Write your own IOC container.
Use an IOC container that supports PCL projects such as Portable.CommonServiceLocator.
Compile your own PCL version of Unity.
Use a later version of Unity 3.5 since this includes a PCL assembly targeting portable-net45+wp80+win8+MonoAndroid10+MonoTouch10
Updated: 2014-05-11
Unity 3.5 now includes a PCL assembly that targets portable-net45+wp80+win8+MonoAndroid10+MonoTouch10 which will install into a project that targets portable-net45+wp80+win.
There is no Unity for PCL, but you can use Ninject for example.

Problems compiling MvvmCross TipCalc sample

I am trying to run the MvvmCross TipCalc sample. Using NuGet on TipCalc.UI.Droid to resolve references works OK. I then try to do same on TipCalc.Core and get:
Adding 'MvvmCross.PortableSupport 3.0.13' to TipCalc.Core.
Could not install package 'MvvmCross.PortableSupport 3.0.13'. You are trying
to install this package into a project that targets 'portable-win+net40+sl40+wp',
but the package does not contain any assembly references or content files that
are compatible with that framework. For more information, contact the package author.
Shouldn't the project just be ready to go for NuGet and it should "just work"? I am newbie to NuGet and MvvmCross. I am on Win7, VS.NET 2012, NuGet 2.7.40911.225, and latest MvvmCross-Tutorials from GitHub.
The problem will probably be in 'net40' and 'wp' platforms you've included - for PCL reasons we need a minimum of 'net45' and wp75' used - see the chart in http://msdn.microsoft.com/en-us/library/gg597391.aspx for the fact that 'net40' doesn't currently support Mvvm Types (e.g. INotifyPropertyChanged).
If it helps, my current development setup here has remained unchanged since March - it's still http://slodge.blogspot.co.uk/2013/04/my-current-pcl-setup-in-visual-studio.html
Shouldn't the project just be ready to go for NuGet and it should "just work"?
The process towards getting all the tooling for PCLs, nuget, VS, XS, etc working across all the platforms has been slow, hard work.... it is happening and it will one day 'just work' but it continues to take time and lots of work from lots of people.
There are still open workitems within nuget and within Xamarin - e.g. http://nuget.codeplex.com/workitem/2926 - which people are working on; some of the MS legal hurdles have recently been cleared (http://blogs.msdn.com/b/dotnet/archive/2013/10/14/portable-class-library-pcl-now-available-on-all-platforms.aspx); and technically things change on the Xamarin side with almost every Alpha release. But it is hard to get definitive answers on when things will be 100% ready and will "just work".
The good news is that:
with the 2 XML files from http://slodge.blogspot.co.uk/2013/04/my-current-pcl-setup-in-visual-studio.html I and plenty of others have been happily using PCLs and nuget for the last 6 months or so.
progress is still moving forwards
Some of these Q&A's may also help:
MVVMCross StarterPack not installing from Nuget in fresh PCL
Can't install MVVMCross on PCL project
MvvMCross 3.0.6 Nuget package installation issue
Adding MvvmCross nuget package reference to PCL failed
Getting PCL, Mvvmcross, Nuget and Xamarin Studio to play "nice" on Mac

NUnit GUI Runner for Windows Phone 8 class library - problems with some System libraries

I'm working on library projects for Windows Phone 8, and using NUnit for unit-testing. My IDE is Visual Studio 2012 Express edition for WP8. It'd been so far so good until a day when it happened to some tests failing saying that it's unable to load some system packages (in particular, System.Xml and System.Net version 2.0.5.0). So I tried:
Looked for the System.Xml and System.Net version 2.0.5.0 so that I could GAC them somehow , but found them nowhere. The closest version I have is 2.0.50272. I indeed tried to use this, it didn't complain anymore but the XmlSerializer.CreateReader and CreateWriter returned null... So the tests failed eventually after that.
Checked out the NUnit and upgraded the projects there to base on .NET 4.0, re-deployed to used this newly built NUnit framework and runner... It didn't work, the same error occurred.
When debugging, I saw it looked like the NUnit GUI loads the dependencies of my libraries using .NET framework run-time 2.0. Although all my libraries are Windows Phone 8 based. Would be very appreciative if someone could shed me some light on this.

Does protobuf-net support Windows RT?

Is it possible to use the protobuf-net library in an application that targets Windows RT? I tried adding it via NuGet to my project but I receive this error:
Successfully installed 'protobuf-net 2.0.0.480'.
Successfully uninstalled 'protobuf-net 2.0.0.480'.
Install failed. Rolling back...
Could not install package 'protobuf-net 2.0.0.480'. You are trying to install this package into a project that targets '.NETCore,Version=v4.5', but the package does not contain any assembly references that are compatible with that framework. For more information, contact the package author.
You need a newer version. Version 594 has support for 4.5.
In the package manager console (Tools->Library Package Manager->Package Manager Console) run:
PM> Install-Package protobuf-net -Version 2.0.0.594
Or download it from the project web site.
Yes, the more recent builds have full support for .NETCore (aka "WinRT", "Windows Store Applications", or "Metro", or "Modern UI", or whatever they want to call it today). As Eli notes, you can obtain it by specific version, or you can get it from the google-code download.
Note that for the best performance it is recommended to use "precompile", the new precompiler, because .NETCore has no support for meta-programming: without this, it will be using reflection at runtime, and will not be anywhere near as fast as it can be. This is included in the google-code download.