Nuget shenanigans

We have added some Reactive Extensions support to our software. All went well until it went into the automated build.

Nuget version 3.3.0.212 could not handle System.Reactive.Core package: it would (falsely) claim that the package could not be found. Interestingly enough, Nuget does not seem to have an option to show where it was looking for the package and why exactly the package cannot be found. In reality, the package was found and even downloaded to the cache, but then Nuget somehow could not deal with it properly.

After we upgraded to Nuget version 3.5.0.1938, this problem disappeared: System.Reactive.Core now miraculously can be found. However, we were up for another surprise: we started to get “file not found” errors when trying to access the nuget package file from the build script. It turns out that in Nuget 3.3, when we specified package version as 1.2.3.0, it would create file named MyProduct-1.2.3.0.nupkg. However, in Nuget 3.5 under the same circumstances the packge file is named MyProduct-1.2.3.nupkg, for compatibility with semver. As a result, our build script is unable to find the nuget package, and, as far as I can tell, there is no switch to restore the old behavior.

Well done, Nuget, well done!

Leave a Reply

Your email address will not be published. Required fields are marked *