Azure: CLI using multiple Versions - azure

For some Dependencies reason with Terraform (using azure cli internally). I'm trying to use multiple versions of azure cli in my machine. e.g, 2.30.0 ,2.22.0
Depends on the need we are planning to change the version whenever required. But I couldn't find a way to change the azure cli version.
I can find a way to install older version but that has to be done by uninstalling the newer version and installing the older version. But I don't want to uninstall it, I want to keep the version(s) and use the different version whenever needed.
Is this possible in azure-cli ?

As far as I know and as per the Microsoft Documentation you can't use different versions of Azure CLI in same system at a time.
As you already know you need to uninstall the older and install the newer when needed.
As suggested by CSharpRocks you can use containers to use multiple versions at a time.
You can Raise a Feature request and support ticket for further usage.

Related

Azure Self Hosted Agents not picking up on installed dependencies

When trying to install tools like python, AZ CLI, updating tool versions, or etc, despite RDP'ing into the server and installing via Powershell, the pipeline still declares them either not installed, or still reflects the old version, even when confirming install/version in shell in RDP. What am I missing?

Updating node.js with NVM for Windows

I've been using NVM for Windows to run two versions of Node on my system, the latest version and the LTS version. However, I haven't updated Node since installing NVM. I would like to update both versions to their current iterations (11.5.0 and 10.14.2 at the time of writing), ideally without having to reinstall all of my global packages for each. I know the original NVM has this capability with the --reinstall-packages-from flag, but it doesn't look like there's anything similar in NVM for Windows.
You're right, there's nothing similar in NVM for Windows. If it would be useful for you, you could always request it by opening an issue on the github page.
It sounds like you already know how to install 11.5.0 and 10.14.2, and that once you do, running nvm use 11 or nvm use 10 will automatically select the latest appropriate version (but you'll still have to manually reinstall any global packages).
This might be an opportunity to take stock of global packages, they often cause more trouble than they are worth. (In general, the fewer global packages installed the better.)
It's unsupported by design
https://github.com/coreybutler/nvm-windows/issues/236
NVM4W provides a more minimalistic approach, focusing on node version
management, not npm management. NVM4W leaves workflow customization to
the end user... because a) it's not hard, and b) it's very
opinionated.
The statement "switching node version needs reinstallation of all
packages in most cases" is unsubstantiated. This doesn't mean it's not
true, but there aren't any stats to back this claim. There are plenty
of use cases where this is not the case, such as developing original
modules with forward/backwards compatibility.
Third, automating this process, either forcibly or by default, has a
number of unintended consequences in a Windows environment. See the
Roaming Profiles use case for an example.
Even if this were a non-default optional command, it still strays from
node version management into npm management. This is an entirely
different problem (and a much bigger problem).

Azure Functions Upgrade from beta to ~2 breaking existing code

We have been using Azure Function runtime version as "beta" and Microsoft.Azure.WebJobs.Extensions.EventHubs - version 3.0.0-beta5 package to bind with Eventhubs.
Things broke down completely after azure portal started prompting for Upgrading to version 2 for Azure Functions. With or without changing the runtime to ~2 (or any specific 2.x.x.x version) it is failing.
Can someone make it clear on what needs to change if we want to target version 2? I tried to upgrade Microsoft.NET.Sdk.Functions to latest 1.0.19 and Microsoft.Azure.WebJobs.Extensions.EventHubs to latest 3.0.0-beta8. All I get is assembly loader errors!
Please help!
You can find the description of this breaking change and recommended steps in this issue.

Could not load file or assembly "Microsoft.Azure.Store.Emulator.Controller, Version=4.0.0.0"

I'm getting this message after upgrading to Azure Storage Emulator 4.6 and v8.0.0 of WindowsAzure.Storage.
I have spent two days trying to get this to work including reformatting and installing all dev tools on two machines. This has happened with THREE previous Microsoft releases, either the Azure SDK, or the emulator or some combination of the two is broken.
I managed to get things working with the previous version (again) with the following steps:
Uninstalled v4.6 of the Storage Emulator.
Deleted database files (mdf, ldf) under C:\Users\\
Downloaded and installed v4.5 Storage Emulator.
Reverted WindowsAzure.Storage to v7.2.1 (via NuGet)
Did a search for "8.0.0" in the solution to identify any remaining binding redirects that use v8.0.0 of WindowsAzure.Storage. Delete these if any are found.
This got me up and running again until there is a proper solution to use the latest version of the above libraries.

NuGet : How to keep package versions consistent across several solutions?

We're building a set of several services, each service has it's own solution with associated projects. Many of these services rely on the same NuGet packages.
All the solutions have "Package Restore" enabled.
Some of the solutions refer to assemblies owned by other solutions, this is one obvious reason why we need all the solutions to refer to exactly the same versions of different NuGet Packages.
All of the services need to work together to achieve an end result. They're packaged and installed as part of a single product, which is another reason we'd like everything to be running off the same versions of the NuGet Packages
We're having trouble keeping package versions consistent between Solutions.
Currently we're manually checking and updating package versions, we're also getting occasional compilation errors because projects in one solution end up referring to different versions of the same package.
Is there a recommended way of doing this (hopefully an automatic process)?
Would we be better off without Package Restore?
Anyone have any general advice on the subject?
Thanks
Update: I created an issue for this on the NugGet project http://nuget.codeplex.com/workitem/2623
To solve this:
Create your own private NuGet server (see 1 and 2) that hosts the correct versions of the packages you use.
Configure each build system to use that server and auto update to the latest version.
Although this requires a server, it not only ensures everyone has the correct version but speeds up the downloads for build servers as well.
You could configure your TFS builds to update all NuGet packages in the solution to their latest versions using the nuget update command.
The latest versions could be from nuget.org, a local NuGet server or even a network share. Use the source parameter to define the sources you want to update from.
You can perform the build configuration via MsBuild proj files or via a TFS template.

Resources