Skip to main content

Azure Devops .Net Core and .Net Standard NuGet Pack/Push

NuGet pack Unable to cast object of type 'System.String' to type 'NuGet.Frameworks.NuGetFramework

Came across a rather misleading error message above today while attempting to pack and publish a .Net Standard class library project to a private feed as a DevOps Artifact.




Well, it turns out that the NuGet Pack and NuGet Push are not supported by NuGet 4.x at this time. The workaround is to use the .Net core specific build tasks which include commands for pack and publish as show below:




YAML
-(PACK)
steps:
- task: DotNetCoreCLI@2
  displayName: 'dotnet pack'
  inputs:
    command: pack
    packagesToPack: <your project.csproj>
    versioningScheme: byPrereleaseNumber
-(PUSH)
steps: - task: DotNetCoreCLI@2 displayName: 'dotnet push' inputs: command: push packagesToPush: '$(Build.ArtifactStagingDirectory)/**/*.nupkg;!
$(Build.ArtifactStagingDirectory)/**/*.symbols.nupkg' publishVstsFeed: '<your feed id>'


The other interesting point to note is that the NuGet Restore works just fine in version 4.x. for .Net Core and .Net Standard pipeline tasks respectively.
One to watch out for until the NuGet team enhances support for the other frameworks.





If you would like some hands on expertise for your business feel free to reach via my company assemblysoft or checkout some other musings via my blazor.net and azure blog here carlrandall.net


Reference Articles
https://github.com/NuGet/Home/issues/4808

Popular posts from this blog

Instrumentation with Semantic Logging Application Block from Microsoft Enterprise Library 6

Introduction Instrumentation, the process of auditing and logging in your applications, is a vital part of any enterprise solution. When you are developing applications with Service Level Agreements and specific Auditing requirements, logging is a big deal. Add in the complexity of the decoupled nature of the cloud with Service Orientated Architecture, piecing together a clear view of a business process from end to end can be a challenge. Microsoft has recently released the Semantic Logging Application Block ( SLAB ) to the enterprise library. This article will form the first part of a mini-series, detailing the benefits, pitfalls and examples of how to make use of it in your enterprise. Although new to the Enterprise Library, Semantic logging is not a new concept. It has been adopted for years under different names such as "structured logging", "strongly typed logging" and "schematised logging" to name a few. What is it? SLAB inherits event

Azure Devops - Pull Request Merge Conflicts

Before a Git pull request can complete, any conflicts with the target branch must be resolved. Out of the box, at the time of writing this article, Azure DevOps requires this to be resolved locally. Following best practices to not allow direct commits to our release/master branches further exasperates the problem as we need to effectively clone the branch or go with a rebase approach, both of which break the natural flow of resolving the conflicts as part of the pull request. With this extension, from the Microsoft DevLabs team via the Marketplace, you can resolve these conflicts online, as part of the pull request process, instead of being forced to break flow and resolve locally. Online Experience After adding the extension the new conflicts tab is visible which enables conflict resolution in the familiar side by side review page as shown below: Really nice extension, which should make resolving merge conflicts a much more straightforward part of the DevOps

Windows Azure Storage Emulator failed to install

CodeProject Windows Azure Storage Emulator failed to install When attempting to install a new version of the Azure Storage Emulator either as a separate installation package or automatically as part of an Azure SDK update, you may run into an error message which states the storage emulator has failed to install. This can occur using the Web Platform Installer (WebPI), NuGet Package Manager or when performing the install manually. Below is the message received using the WebPI.   Storage Emulator Background  (optional reading) The windows azure storage emulator executable lives under the Microsoft SDKs directory as shown below: Configuration If we take a quick look inside the WAStorageEmulator.exe.config file we can see each of the storage services pointing to local service endpoints. <StorageEmulatorConfig>     <services>       <service name=" Blob " url="http://127.0.0.1:10000/"/>       <service