Xamarin.UWP publish x64 and ARM64 - xamarin

Surface Pro X uses ARM processor.
So far, I have been publishing UWP app using x64 architecture only.
I have created ARM64 and managed to build release version successfully.
However, when I choose Publish -> Create app package, I don't see the option to select Release/ARM64 in the drop down menu.
Also, when I select x64 and ARM64, an error message says "Selecting mixed solution configuration is not allowed when generating app bundles".
Any assistance greatly appreciated.
Thanks.

Make sure you have selected Release mode before generating App Bundle. If you have different configuration(Debug x64 & Release ARM etc.,), it will show this error "Selecting mixed solution configuration is not allowed when generating app bundles". Ensure it is release configuration in all your selections(Release x64 & Release ARM).

I finally solved this by changing the the .sln and .csproj files to use arm & arm64 instead of ARM & ARM64. Windows 10 development machine is, somehow, case-sensitive.

Related

can flutter sdk run on x86 windows?

Has anybody tried and succeeded with installing flutter on win x86?
(no VM of course)
My question is not about what Google SAYs, but why do YOU think it is possible or not possible. I do not see anything in the source at github that may prevent it from running on win x86 apart that google does not want to provide support for x86, because it is not a priority.
If you think it is not possible, can you please provide some idea why before saying No or voting down
====BACKGROUND====
prerequisites for the flutter sdk on windows are:
dart 2.0
PowerShell 5.0 or newer
Git for Windows
inside there are also some java and libcurl executables
all of the above exist in win x86 versions
plus the rest seems to be just dart source code.
I run flutter on Ubuntu.
I have an older laptop with win 7 x86 pro which I do not want to upgrade to x64
I tried to use x64 win installation
replacing dart 2.0 x64->x86
and then using flutter doctor to update.
(flutter uses dart pub with "update" function changed to "upgrade", but this can be fixed)
the update using flutter doctor in fact runs just to the point of updating flutter_tool
then trying to update some flutter_tool related packages it comes up with an ERROR:
cannot resolve the library URL
The Windows installation page says:
To install and run Flutter, your development environment must meet
these minimum requirements:
Operating Systems: Windows 7 SP1 or later (64-bit)
And there is a recent comment (20 Aug 2018) from one of the Flutter developers that also states:
We don't have any plans to support 32-bit Windows. That said, if
anyone is willing to send pull requests to get Flutter running on
32-bit Windows, we'd gladly review the PRs.
A further response from the Flutter devs outlines some of the reasons why this is the case:
Someone would need to author 32-bit build rules in the
engine/buildroot repos to build a 32-bit SDK -- specifically the
Dart VM and gen_snapshot. Ideally, the rules would also emit the
target architecture Android artifacts as well.
The design of gen_snapshot (our AOT compiler) assumes identical host
and target architecture bitness. Only a 64-bit build of gen_snapshot
can output arm64 target binaries. Fixing this would involve a
significant amount of work.

Xamarin solution only builds with MSBuildPlatform.x86

I have the following question:
I'm using CakeBuild to build my Xamarin.Forms solution on a Windows computer (Windows 10).
Everything builds fine when I'm using the following command:
MSBuild("MyXamarinApp.sln", configurator =>
configurator.SetConfiguration("Debug")
.SetMSBuildPlatform(MSBuildPlatform.x86));
But if I remove "SetMSBuildPlatform(MSBuildPlatform.x86)" it uses internally "MSBuildPlatform.x64" and then I get the following error:
(_GetReferenceAssemblyPaths target) ->
C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(566,2): error MSB3644: The reference assemblies for framework "MonoAndroid,Version=v1.0" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend.
Can someone explain this behaviour? Can I only use the x86 version of MSBuild to build Xamarin projects?
You need to set that platform in you Android application target. (AndroidProject -> Options).
x86 that desktop architecture. You can use it to build and test on simulator, but for a real device you will need to select at least one mobile architecture (any architecture that's not x86 or x86_64)

Error building Windows Phone project with build configuration ARM

The project can be compiled and deployed to the Emulator and Device.
Everything works fine as long as the build configuration is set at AnyCPU or x86.
And is set to Debug.
But when build configuration is set to Release, project doesn't build.
If project is set to AnyCPU and ARM, the same problem exists.
Error 1
Files has invalid value "<?xml version="1.0"?>". Illegal characters in path.
The error doesn't point to a file.
External Libraries referenced by in this project-
- JeffWilcox.PhoneThemeManager
- Buddy
- AdDuplex
The Windows Phone 8 emulator can run only applications built as AnyCPU or x86, because it is actually running on your PC as on Hyper-V as a virtual machine.
On the other hand all Windows Phone 8 devices are ARM only, so to run your app on device, it needs to be AnyCPU or ARM.
I hope this clears some confusion in the deployment limitations.

Creating universal Cocoa framework that can be included in a 32-bit or 64-bit application

I want to create a Cocoa framework that can be included in a 32-bit or 64-bit application. Is there a way that I can create a single universal build of my framework that will work in both? Or do I have to compile two different versions of my framework?
Figured it out. With the default configuration, a new framework will build universal when you build it as Release, but built as Debug, it is by default your own architecture only (to speed it up).
So either build as Release (recommended) or edit the target settings and change the key (Build Active Architecture Only) for the Debug configuration.

Warning - Targets a different processor than the application

My .NET 3.5 WPF application has started showing a bunch (14) of the the following warning (with different dlls):
Referenced assembly 'C:\WINDOWS\assembly\GAC_32\Microsoft.TeamFoundation
\9.0.0.0__b03f5f7f11d50a3a\Microsoft.TeamFoundation.dll'
targets a different processor than the application.
I am running on a 32 bit machine. The only project in my solution is set to compile to "Any CPU". (A rebuild all does not fix it.)
I would rather not recreate my solution. Does anyone else know another fix/workaround for this issue?
NOTE: I am using Visual Studio 2008 SP1 and Windows XP 32 bit.
Haven't seen that one specifically but the download samples for C++ by default build for Itanium - did you install the wrong version of those libs?

Resources