Process:
- Create a NuGet package called
FooPackage
. The package consists of two DLLs:BarDLL
is a C# wrapper,BazDLL
is an F# library which defines a type calledQuxType
. The package and the DLLs it contains are all version1.0.0
. - Publish the package to our private NuGet host.
- Install
FooPackage
in solutionCorgeSolution
and referenceQuxTpe
. - Remove
QuxType
fromFooPackage
and replaced it withQuuxType
, meanwhile updating the package and the DLLs to version2.0.0
- Update the package in
CorgeSolution
without removing the reference toQuxType
.
Expected result: compile error in CorgeSolution
. Since the type is no longer included in the installed package, it should not be possible to reference it.
Actual result: no compile error.
Other details
Using ReSharper I can navigate to a decompiled version of QuxType
. There, I find the DLL version number is reported as 1.0.0
, and a folder reference is given. I can delete the folder containing V1.0.0, but NuGet restores it in the blink of an eye.
Question
What's going on here? Why is the deprecated type still available?