Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create a nuget package #1

Open
vincenzoml opened this issue May 12, 2022 · 0 comments
Open

Create a nuget package #1

vincenzoml opened this issue May 12, 2022 · 0 comments

Comments

@vincenzoml
Copy link
Owner

Excerpts from a stackoverflow conversation in fsharp/beginners (see the thread after message https://fsharp.slack.com/archives/C04BJKUP2/p1651246218852749)

chethusk 1 day ago
and if I'm not, then I know some 🙂 so packaging native assets is still a weak point, but I would definitely go with the pattern for content that is shown in the pact-net link above (https://github.com/pact-foundation/pact-net/blob/master/src/PactNet/PactNet.csproj#L22-L44). packing the native libraries in RID-specific folders like that enables nuget restore of your package to automatically do the correct thing. I would read NuGet/Home#6645 and dotnet/sdk#24708 for future work in this area

chethusk 1 day ago
and for information specifically about the package content folders you can check this documentation: https://docs.microsoft.com/en-us/nuget/create-packages/supporting-multiple-target-frameworks#architecture-specific-folders. This would be what you'd put in your PackagePath for your native Content items (edited)
docs.microsoft.comdocs.microsoft.com
Multi-targeting for NuGet Packages
Description of the various methods to target multiple .NET Framework versions from within a single NuGet package.

Vincenzo Ciancia 4 hours ago
@chethusk thanks a lot! One difference between pact-net and my case is that there, they seem to be re-distributing a native library inside another library. I would instead like to create a package shipping just the managed dll and native library for each platform. That is I want to package simpleitk. Currently they provide (since a couple weeks) the dlls for each platform and I would like to contribute a nuget package for that.

Vincenzo Ciancia 4 hours ago
The most basic question is "Where do I start? " since I never prepared a nuget package before.

A. Jeckmans 4 hours ago
🙂 Start with setting up a local feed and pointing your consuming project to that feed. ( https://spin.atomicobject.com/2021/01/05/local-nuget-package/ and https://docs.microsoft.com/en-us/nuget/hosting-packages/local-feeds)
Then read and follow https://docs.microsoft.com/en-us/nuget/create-packages/creating-a-package and after that https://docs.microsoft.com/en-us/nuget/create-packages/supporting-multiple-target-frameworks
And then if your package works in your own consuming (test) project, read https://docs.microsoft.com/en-us/nuget/nuget-org/publish-a-package on how to publish to nuget

A. Jeckmans 4 hours ago
also don't get bogged down in the specifics and all the options too much. Just make it work first and then read up on all the little details

A. Jeckmans 4 hours ago
the basics are pretty easy and not at all cumbersome to implement, but it is like msbuild, once you start going down the rabbit hole you won't find your way back again 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant