I am developing commandlets in C#. The commandlets use these Azure packages.
<PackageReference Include="Azure.Messaging.ServiceBus" Version="7.1.0" />
<PackageReference Include="Azure.Search.Documents" Version="11.3.0" />
<PackageReference Include="Azure.Storage.Blobs" Version="12.8.0" />
<PackageReference Include="Microsoft.Azure.Cosmos.Table" Version="1.0.8" />
<PackageReference Include="Microsoft.Azure.Management.Fluent" Version="1.37.0" />
<PackageReference Include="Microsoft.Azure.Management.ResourceManager.Fluent" Version="1.37.0" />
<PackageReference Include="Microsoft.Azure.ServiceBus" Version="5.1.1" />
<PackageReference Include="Microsoft.Azure.Services.AppAuthentication" Version="1.6.1" />
We build the commandlets into an assembly (DLL) and then import that assembly as a module.
Import-Module path/to/our/assembly.dll;
This usually works terrifically. A problem occurs, though, when we combine our commandlets with those from Az.Accounts and/or Az.Storage. For instance, the following will throw an error:
New-AzStorageContext -ConnectionString $StorageAccountConnectionString `
| Get-AzStorageContainer `
| Get-AzStorageBlob;
Invoke-OurCustomCommandlet
When we invoke our custom commandlet, we see the following error:
Could not load file or assembly 'Azure.Core, Version=1.15.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8'. Could not find or load a specific file. (0x80131621)
How can we resolve this, so that our custom commandlets can interact with the Az modules? Our commandlets work fine when we have not run those Az module commandlets first.