Nuget package with multiple dll fails to reference anything other then the main dll
I have a custom Nuget package, on local machine source.
Contains 2 dlls, one is the main assembly and the other a supporting assembly (CCTools.Gen.dll
).
Purpose of Nuget, quick "one stop bucket" for many of our custom dlls we reference from Linqpad.
When calling a method from the main dll, Linqpad fails
'FileNotFoundException: Could not load file or assembly 'CCTools.Gen, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
The deployed Nuget spec file:
<?xml version="1.0" encoding="utf-8"?> <package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd"> <metadata> <id>TheTechZap.ZxvTools.Products.LinqPadTools.Common</id> <version>1.0.0</version> <title>TheTechZap LinqPad Tools Common</title> <authors>TheTechZap</authors> <owners></owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>2022-03-10_14-37-19, Common tools for powering LinqPad</description> <copyright>TheTechZap</copyright> <tags>LinqPad, code generation, generators, tools, database meta</tags> <dependencies> <group targetFramework="net6.0"> <dependency id="LINQPad.Runtime" version="7.2.7" exclude="Build,Analyzers" ></dependency> <dependency id="Microsoft.EntityFrameworkCore" version="6.0.2" exclude="Build,Analyzers" ></dependency> <dependency id="System.Data.SqlClient" version="4.8.3" exclude="Build,Analyzers" ></dependency> </group> </dependencies> </metadata> </package>
In the nuget package, the \lib\net.60
folder contains
TheTechZap.ZxvTools.Products.LinqPadTools.Common.dll CCTools.Gen.dll
When I reference the same Nuget in a new standard XUnit project in VS, all works fine, and CCTools.Gen.dll is being referenced correctly.
In Linqpad running, Show assembly resolution log
, does NOT contain CCTools.Gen.dll
Can anyone help please?
Comments
Have you perhaps changed the package without incrementing the version number? If so, LINQPad's package cache will still contain metadata applicable to the old version (packages are never supposed to change). Try rebuilding as 1.0.1, or prerelease version such as 1.0.0-test.1.
Thanks Joe. I figured it out. I think the problem is to do with dlls compiled using multiple frameworks in the nuget.
In LinqPad, the [.NET dropdown box] was on
Auto
.Fix:
In LinqPad, the [.NET dropdown box], select
net6.0
, (or whatever specific version needed). Do not selectauto
.