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

proposal for dotnet paket #2184

Closed
wants to merge 1 commit into from
Closed

Conversation

ctaggart
Copy link
Contributor

This is not to be merged. I'm proposing that a donet-paket be created to make distributing paket extremely easy. Distributing build tools like paket and FAKE via DotNetCliToolReference's is a great way to do things for MSBuild 15. I shipped SourceLink v2 last week as one. Pretend in the code example that it was paket.ps1 instead. Perhaps the directory needs to be passed in too. Those details can be worked out.

@forki
Copy link
Member

forki commented Mar 15, 2017

I think @enricosada is already working on this. Take a look into ./tools

@enricosada
Copy link
Collaborator

enricosada commented Mar 15, 2017

@ctaggart i love dotnetcli tool, i have some atm dotnet-mergenupkg, dotnet-proj-info.

but there are annoying drawback like:

but are good. Is possibile to use a tools directory with that (or .paket) like you have done.
i use that atm for repo specific tools, until a real per repo install exists (sdk 2.0?)

For paket i was doing some work/exploration in #2125
about boostrapper and deeper sdk integration.

For paket boostrapper i think a cli tool is not the best solution.

One constraint i know exists is paket should run on net40 too, without netcore sdk installed. just from vs (who embeed the sdk, but not the .net core tools).
Another is we need it at restore step, so need anyway to restore it somehow.

Best solution ihmo atm is to package fake as nupkg with multiple tools for framework (net45, netcoreapp1.* fdd).
At restore step, that package is downloaded with restore (so normal <PackageReference Include="Paket" Version="4.*" />, so easy to version) into .paket/out directory.
The paket target file will execute dotnet .paket/out/build/netstandard1.0/paket.dll or ./paket/out/build/net45/paket.exe (with mono prefix on mono), based on msbuild host runtime.
That can be specified in a .props file who set $(PaketCommand) property, and is imported later for next runs.

I have some questions left, like:

  • how to run it from command line (what command wrap in the .\paket\paket script? dotnet paket or paket.exe/mono paket.exe?), maybe save the choose at restore step. if was restored in vs -> net45, otherwise netcore

@enricosada
Copy link
Collaborator

feedback welcome! not about my PR because is a bit stale, but about how to boostrap

@forki
Copy link
Member

forki commented Dec 20, 2017

@enricosada is working on this in new PR.

@forki forki closed this Dec 20, 2017
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

Successfully merging this pull request may close these issues.

3 participants