Will Xamarin 15.2.2 roll out this weekend, and will it fix SDK-style csproj?

Hi,

I’ve been migrating my solution to netstandard + SDK-style csproj (the new csproj format). It builds locally in VS, but fails in Bitrise with the following error:

/Users/vagrant/git/Src/Utility/Utility.csproj: error : /Users/vagrant/git/Src/Utility/Utility.csproj: The default XML namespace of the project must be the MSBuild XML namespace. If the project is authored in the MSBuild 2003 format, please add xmlns="http://schemas.microsoft.com/developer/msbuild/2003" to the <Project> element. If the project has been authored in the old 1.0 or 1.2 format, please convert it to MSBuild 2003 format.

My understanding of the situation is that this should be supported in the 15.2 release (which was rightfully rolled back by Bitrise due to it being a shambles). However, 15.2.2 came out today which should help address the major problems. So I would like to confirm:

  1. 15.2.2 will be rolled out this weekend
  2. It will support the new csproj format

Thanks

Thanks for asking this here @ch_kent!

15.2.2 will be rolled out this weekend

Sure, we’ll prepare & test it on Friday and deploy the updated VMs on Saturday as usual (How are the bitrise.io stacks updated and with what frequency? What's the stack deprecation / removal policy?)

AFAIK it should solve the issue as Xamarin Studio uses the same core components as Visual Studio for Mac, and we install Xamarin Studio as-it-is, without any customization other than turning off automatic updates and setting the log level to Quiet (https://github.com/bitrise-io/osx-box-bootstrap#xamarin-notes)

Thanks for the reply @viktorbenei

Xamarin Studio uses the same core components as Visual Studio for Mac

I’m a bit confused by this bit. My understanding is the VS4Mac is the new thing and XS is effectively deprecated. Will the 15.2.2 image therefore have VS4Mac installed?

VS for Mac is built on top of Xamarin Studio; to be precise on MonoDevelop which is the core of both. It has more in common with Xamarin Studio than it has with Visual Studio (for Windows) right now.

15.2.2 is a Xamarin Studio only release (https://releases.xamarin.com/stable-release-15-2-2/ - “This service release is not yet available in Visual Studio 2017.”)

We will soon introduce new Xamarin stacks which have VS for Mac installed instead of Xamarin Studio, but right now Xamarin Studio is fully supported, should not cause any issues. That said once the VS for Mac based stacks are available we’ll provide both (VS for Mac & Xam Studio) based stacks for a while, and when Xam Studio will be officially deprecated (it is not right now as far as I know) we’ll deprecate those stacks.

I’ve been chatting with Xamarin engineer Jon Douglas about this:

So it seems I might be SOL here?

Jon is also suggesting this may just be a lack of .NET core tooling installed in the VM. Can you clarify whether that is installed in the image?

I found the .NET core installer workflow step, but it’s failing for me:

Installed .NET Core version

/var/folders/90/5stft2v13fb_m_gv3c8x9nwc0000gn/T/bitrise461824496/step_src/step.sh: line 38: dotnet: command not found

.Net Core is not preinstalled, but there’s an installer step for that (more info: Weekly Virtual Machine / Stack updates - 2017.05.06 & https://github.com/bitrise-io/osx-box-bootstrap/pull/44)

That step is not maintained by us, please create an issue on the step’s github/tracker (you can find the link to that in the build log, in the footer of every step, as well as in the workflow editor, if you select the step → right side GitHub icon).

Regarding a stack with Visual Studio for Mac: at this point all I can say is that we’ll start preparing the new stack in the upcoming weeks. It’s at the top of our priority list. Unfortunately we can’t commit to a release date / ETA yet, as we’re yet to see if there are any significant tooling / step changes required. If everything goes smooth the stack should be available as a new stack option in the next couple of weeks, but we’ll see how much additional work will be required to update all the related steps/tools.

Once the new stack is available we’ll definitely post about that in Changelog, with the stack-updates tag.

In the meantime if you have any questions or comments please let us know!

Still failing with the same error after the 15.2.2 rollout :cry:

Did you try with .Net Core installed?

I did but the package is broken. Reported it here.

1 Like

Thank you! I sent a PR there too.

One note: I’d suggest you to share the whole step log (from the step’s header to its footer), not just the last line, it helps a lot.

Last thing: you can also use a Script step and install .Net Core yourself, e.g. by copying the content of the installer step (https://github.com/stefandevo/bitrise-dotnetcore-step/blob/master/step.sh), or fork the step and fix the issue yourself, and use your fork instead of the main step repo (docs: http://devcenter.bitrise.io/bitrise-cli/steps/#special-step-sources)

OK, I’ve fixed and PR’d the .NET core install step here.

However, even with .NET core installed, my build still fails with the same problem :frowning:

I have a colleague who has 15.2 installed (which I have thus far avoided). I’m getting him to upgrade his Mac to 15.2.2 as we speak. Once upgraded, I’ll get him to try building my project using Xamarin Studio (he doesn’t have VS4Mac installed yet). If that fails, I will get him to install VS4Mac and try again.

Should be able to report back by end of day…

1 Like

Please do, would love to hear the results! :wink:

P.S.: the Xamarin 15.2.2 update was rolled out during the weekend (Weekly Virtual Machine / Stack updates - 2017.05.27)

Update: colleague having some issues with getting VS4M installed because his VM image is too small. Will report back once sorted.

1 Like

One more question: for what do you need the new project ref style? Could that be converted (temporarily) back to the older version? Or is there a specific reason why you need can’t? (Just curious)

Because it’s the new way of doing things. Far less friction with merge conflicts when working in teams for example. And far easier to do multitargeting.

All this netstandard+csproj work is something I’ve done in a separate branch to our mainline, so it’s not like I need to migrate back - it’s more that I need Bitrise to be able to build it before I can merge. We need to get it merged ASAP to move forward because we’re running into a lot of issues consuming third party netstandard dependencies. And since we rely on Xamarin.Forms, which itself is moving to netstandard in the next release, I’m concerned about that too.

Sure, I definitely understand you, was just curious.

If we can help with anything just let us know, in general:

  • right now we have stacks with Xamarin Studio preinstalled; if your project works in Xam Studio it should work there too, no customizations at all, it’s just installed on MacOS using the standard Xam Studio installer
  • we’ll soon provide VS for Mac stacks (same thing, we always use the official installers, no customization, if it works with a clean install of the tool it should on bitrise.io too as it’s installed the exact same way), but that will take at least a couple of weeks to make it available for use on bitrise.io

Did you try this (lastest Xam Studio)?

Yes, tried with latest XS and it didn’t work because XS doesn’t support the new project format. It’s all in VS4M now. He ran into issues getting it installed, but it’s up now so gonna take a look to see how far we get today.

OK, good news!

With VS4M and the .NET core tooling installed, I can build my netstandard + new csproj projects on the Mac.

Is there an issue I can keep an eye on to know when VS4Mac will be available in Bitrise images?

Thanks Viktor.

1 Like