Docker image for TFS Xamarin Android build agent? - c#

We are building Xamarin.Android projects on TFS (on-premise).
With every Visual Studio / Android SDK update we have to update all our build agents.
Is there a way to simplify this process?
There are some vsts-agent images available, but none of them are for xamarin. There are some xamarin-related images, but they are a bit out of date (and not related to TFS).
Is there anything I'm missing? Any other solutions to the problem?

Currently, there are no Docker images support for xamarin or windows. Even for the existing Docker images, there are not for all TFS versions. As you can see from vsts-agent images:
Ubuntu 14.04 and 16.04 are the currently supported OSes, but there are
plans for Windows support.
When used with VSTS, the agent version is automatically determined and
downloaded at container startup based on the account to which the
agent is connecting. When used with TFS, an image that matches the
installed TFS version should be chosen.
There are no better way to do that. So, you have to update the build agents manually once there are any SDK updates.
You can also submit a User Voice to suggest the feature on this site: https://visualstudio.uservoice.com/forums/330519-team-services
Actually a similar user voice submitted here,
Another workaround is migrating to VSTS (Visual Studio Team Services ) and using the hosts agent (Generally the hosts anget will be updated accordingly once new SDK/components updated, See this user voice).

Related

Getting app to install emulator in a xamarin project without having the source code

I have looked through the Microsoft documentation but everything seems to want you to run everything with the development code. I used a bitbar tutorial to help start my C# xamarinui test framework. I have the emulators working I just want the apk and ios apps to install as the first test. I know how to drag and drop and put the app on the phone manually. I am looking for a way to get the app to install and launch through test code or by some operation. I do not have access to the source.
Only for the Android case, google for the apk, usually they are available on sites like apk pure etc. If the apk has executables for x86 inside you could install in on android simulator using just drag and drop.
For iOS this seems not possible as the installer has to be signed with appropriate profiles that only app developer has in his possession.

Azure build agent and xamarin.android build

i have a vm on which i installed the lastest version of microsoft visual studio (16.7.3). this machine is intended to be used as a build-agent for azure devops pipelines.
i tried the following.
opened visual studio, download and open the project source, build (releasebuild) the project, archive and sign the apk and install it on the target device (android 7.0) --> this was successful. the app works as expected.
i also installed the build-agent-package (vsts-agent-win-x64-2.170.1.zip) on this machine.
i configured it and it was succesfully registered at the azure devops site.
when i run a build pipeline targetting the same project (releasebuild), the agent generates and signs the apk-package. this apk-package installs on the target device but the app does not start.
this means: no error messages, only a white screen.
i compared the two apks, they differ slightly, the inner folder structure is equal,
but some files have different sizes.
this test runs against the azure devops server 2020 rc2. but i have the same issue
using the tfs 2018 and the corresponding build agent.
could anyone give me some hints how to research this issue?
many thanks in advance
keek

automatically update desktop app

We have a web app and a desktop windows WPF app.
Windows app sends data to webapp (hosted on azure)
Users download app from website. There are occasionally new versions of desktop apps available.
What is the most efficient way to setup automatic updates for desktop app? We are using github.
I found "releases" in github but I'm not sure how to notify desktop app and how to create an updater. (I guess we need to check for github releases every time app is started. Do I need to use Github api for this?)
What is the best repository structure for releases?
I'm looking for best practicies on how to perform seamless updates to desktop apps. (In terms of repository setup, creating web api to pull version info maybe?)
You can deploy your desktop applications using ClickOnce Deployment mechanism. This will take care of updating the software. Your users download the software from a publicly accessible Internet site. Whenever you have a new version available, you can simply deploy the latest deployment files on the download link. ClickOnce deployed application automatically check for any updated version on that link and prompt the user to download and install the latest version.
From the same MSDN link, one of the problems solved by ClickOnce deployment is facilitating automated updates:
Difficulties in updating applications. With Microsoft Windows
Installer deployment, whenever an application is updated, the user
must reinstall the whole application; with ClickOnce deployment, you
can provide updates automatically. Only those parts of the application
that have changed are downloaded, and then the full, updated
application is reinstalled from a new side-by-side folder.
I was looking into accomplishing the same needs and came across this library which can do what you're asking for;
https://github.com/Squirrel/Squirrel.Windows
There's a lot of configuration, but what you're asking for is not trivial, but maybe you can get some ideas.
For our needs; we're going have our build server (teamcity) create an MSI using a Wix project then the app will download and execute the MSI. Once we go to production we'll move MSI hosting over to some more enterprise-y CDN type setup.

Which files to select for installing an old versions of the Azure SDK for .Net

Downloading a current version of the Azure SDK for .Net is easy to do via the Web Platform Installer tool.
The thing is that it only has the latest 2 versions or so.
If I want to download an older version, Microsoft points me to the following download site. When clicking download, I'm confronted with a dialog asking me to select which of 20(!) different files I would like to install.
Of course none of these files have any descriptions, so I'm left to deduce stuff from the file names.
here's the list of all the files i'm seeing for SDK version 2.5
EnvironmentTools.VS.msi
HiveODBC32.msi
HiveODBC64.msi
Microsoft.Azure.HDInsightToolsForVS2012.msi
Microsoft.Azure.HDInsightToolsForVS2013.msi
Microsoft.Azure.HDInsightToolsForVS2015.msi
MicrosoftAzureAuthoringTools-x64.msi
MicrosoftAzureAuthoringTools-x86.msi
MicrosoftAzureComputeEmulator-x64.exe
MicrosoftAzureComputeEmulator-x86.exe
MicrosoftAzureLibsForNet-x64.msi
MicrosoftAzureLibsForNet-x86.msi
MicrosoftAzureQuickstarts.msi
MicrosoftAzureStorageTools.msi
MicrosoftAzureTools.VS110.exe
MicrosoftAzureTools.VS120.exe
MicrosoftAzureTools.VS140.exe
WebToolsExtensionsVS2013.msi
WebToolsExtensionsVWD2013.msi
WindowsAzureStorageEmulator.msi
IS there a way to install older SDKs with a single installation (like Web Platform installer)
if not, What is the minimal set of programs i need to run in order to successfully build and deploy Azure cloud services? (i don't even need to run it on local emulator). Assuming I have 64 bit machine and VS2013.
For me (on x64 machine and VS2013 install) these are the minimal set of programs i needed to install in order for my build to pass:
MicrosoftAzureAuthoringTools-x64.msi
MicrosoftAzureLibsForNet-x64.msi
MicrosoftAzureTools.VS140.exe (for VS2015) or;
MicrosoftAzureTools.VS120.exe (for VS2013)

Xamarin C# Cross Platform Application

I am new to using Xamarin and have always used Visual Studio, however I now require to develop a desktop application which will run on both Mac and Windows, OR at least a package which will let me package for both.
I have created a GTK 2.0 Project, connected to a MySQL database etc and all is fine, however I can only see options to create a .exe and no .dmg file for OS X but the debugger lets me run it on my Mac.
Does anyone have any ideas or pointers?
We use Xamarin.Mac to enable us to develop a Windows and Mac client using c#.
We chose to re-build the core code in Xamarin Studio and use interfaces to abstract the OS dependent code.
We share 90% of our code in the Xamarin.Mac/VS solutions.
Do let me know if I'm helping... if so I can provide more detail if need be.
Check the following link on how to create an .app bundle with Xamarin:
How to set Xamarin MonoMac project so its build outputs .app package instead of .exe?
An app bundle is basically a special kind of folder structure that contains all app data, including e.g. graphical resources, configuration files, localisations, etc...
A .dmg file is used for distribution and can be created using other tools like Apple's own Disk Utility, once you've created the app.

Categories

Resources