RobThree/IdGen

Public Method Comments

LeeWhite187 opened this issue · 1 comments

Sorry to be a style-douche, with this.
Was test-driving your id generator package. Nice work, by the way.

I was trying to identify the usage of methods on the generator class.
But, the Intellisense wasn't showing anything.

I peeked into the nupkg (v3.0.3 in case it matters), and saw that you include an xml doc file for the netstandard1.1 target.
But, there was not one for the netstandard2.0 target... probably the version my test code is linking to.

Nuspec's are annoying to deal with, and I've never understood why the documentation is so sparse.
And for multi-targeted and multi-runtime packaging, there's few working examples on the web that well-define how to organize the files node (for a sourcing nuspec file).
Here's the files node excerpt of what I do in sourcing nuspec files.
This example targets net5 and net6 and two runtimes of each: win64 and linux64.

Normally, for a simplex nuspec file, the xml doc is listed in the "lib" folder, next to the corresponding dll.
But for a nuspec that packages for multiple target framework versions, the xml doc gets listed in the "ref" folder of each target version.
It doesn't matter which compiled dll file you use for the ref file. But, list the xml doc from the same dll.

NOTE: Since multiple "lib" folders are required for multiple framework (net5.0, net6.0, etc), a separate "ref" is required.
But, multiple target runtimes (Win-x64, linux-x64, etc) can share the same "ref".

NOTE: I also include pdb files with my nuget packages.
Contrary to style-police guidelines, I do this, so any logging library can directly include file and line numbers as log message context, without resorting to hairy indirection of IL Offsets and pdb2xml mapping work (my OGA.SharedKernel library has a stacktrace class to help with this).

Hope it helps.

  <files>
    <file src=".\NETCore_Common_NET6\bin\DebugWin\net6.0\win-x64\NETCore_Common.dll" target="ref\net6.0" />
    <file src=".\NETCore_Common_NET6\bin\DebugWin\net6.0\win-x64\NETCore_Common.xml" target="ref\net6.0" />
    <file src=".\NETCore_Common_NET6\bin\DebugWin\net6.0\win-x64\NETCore_Common.dll" target="runtimes\win-x64\lib\net6.0" />
    <file src=".\NETCore_Common_NET6\bin\DebugWin\net6.0\win-x64\NETCore_Common.pdb" target="runtimes\win-x64\lib\net6.0" />
    <file src=".\NETCore_Common_NET6\bin\DebugLinux\net6.0\linux-x64\NETCore_Common.dll" target="runtimes\linux-x64\lib\net6.0" />
    <file src=".\NETCore_Common_NET6\bin\DebugLinux\net6.0\linux-x64\NETCore_Common.pdb" target="runtimes\linux-x64\lib\net6.0" />

    <file src=".\NETCore_Common_NET5\bin\DebugWin\net5.0\win-x64\NETCore_Common.dll" target="ref\net5.0" />
    <file src=".\NETCore_Common_NET5\bin\DebugWin\net5.0\win-x64\NETCore_Common.xml" target="ref\net5.0" />
    <file src=".\NETCore_Common_NET5\bin\DebugWin\net5.0\win-x64\NETCore_Common.dll" target="runtimes\win-x64\lib\net5.0" />
    <file src=".\NETCore_Common_NET5\bin\DebugWin\net5.0\win-x64\NETCore_Common.pdb" target="runtimes\win-x64\lib\net5.0" />
    <file src=".\NETCore_Common_NET5\bin\DebugLinux\net5.0\linux-x64\NETCore_Common.dll" target="runtimes\linux-x64\lib\net5.0" />
    <file src=".\NETCore_Common_NET5\bin\DebugLinux\net5.0\linux-x64\NETCore_Common.pdb" target="runtimes\linux-x64\lib\net5.0" />
  </files>

The missing .xml is fixed in 3.0.7.