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

Building on Server Core #23433

Closed
bazzilic opened this issue Sep 3, 2017 · 12 comments
Closed

Building on Server Core #23433

bazzilic opened this issue Sep 3, 2017 · 12 comments
Labels
area-Infrastructure-libraries enhancement Product code improvement that does NOT require public API changes/additions
Milestone

Comments

@bazzilic
Copy link

bazzilic commented Sep 3, 2017

According to this (https://github.com/dotnet/corefx/blob/master/Documentation/building/windows-instructions.md), building requires VS 2015 or 2017 installed. And the build script actually stops if they are not found.

Then, according to this (https://www.visualstudio.com/en-us/productinfo/vs2017-system-requirements-vs), VS 2017 can't be installed on Windows Server Core (or can it?).

Does this mean, we can't build dotnet on a Server Core? Specifically, I want to build from source in a docker container to have clean, reproducible environments.

@danmoseley
Copy link
Member

@weshaggard @joperezr you guys are working to enable this I think?

@weshaggard
Copy link
Member

Yes this is something we are working towards but as it stands we don't have all the pieces ready and so building our repo's directly on Windows Server Core doesn't work yet.

There are currently 2 big dependencies on VS.

  1. We currently depend on the msbuild from VS
  2. We depend on the VC++ headers and libs

We are actively working on (1) but it is still a ways out. For (2) we don't yet have a solution I've started conversations with the VC++ team but we don't have a working solution yet.

@bazzilic
Copy link
Author

bazzilic commented Sep 6, 2017

@weshaggard I see. Is there any place where I can track updates on this? I'd like to try it out as soon as this is available.

@joperezr
Copy link
Member

joperezr commented Sep 7, 2017

@bazzilic for now we only have some part of these changes in a private fork: https://github.com/joperezr/corefx/tree/WIP

That said, in order for that fork to build correctly you would also need buildtools changes that are not checked in yet which is why there is no real easy way to try this out for now. The plan is that in the next few days/weeks we will eventually get these changes on the main fork (probably not in master branch, but in a feature branch instead). I will update this issue when that happens so that you can sync and try it out.

@bazzilic
Copy link
Author

bazzilic commented Sep 8, 2017

@joperezr thank you, looking forward to it.

@ViktorHofer
Copy link
Member

@joperezr @weshaggard is there an update on this? Which pieces in corefx still require the desktop msbuild? What about the VC++ libs?

@joperezr
Copy link
Member

joperezr commented Aug 27, 2018

Number 1 from above is done since we already use the CLI's msbuild in order to build corefx. Also, we made a lot of progress into removing dependencies to VS by transforming all of our projects into SDK-style projects. However, we still have Number 2 pending, since we still have that external dependency of needing the VC++ headers and libs. In theory, you should be able to build all of our managed build without VS installation though since the VC++ libs and headers are only required for the native build.

@ViktorHofer
Copy link
Member

Correct me if I'm wrong but aren't we still using the Developer Command Prompt (probably to use the desktop msbuild) during .\build for some parts? i.e. native parts

@joperezr
Copy link
Member

We are using developer command prompt, but we don't call msbuild anymore. If you build using build.cmd script, then what we are going to use to build all the projects will be .\Tools\dotnetcli\dotnet.exe msbuild ... which basically uses the CLI's msbuild instead of the one in the PATH that comes with VS. We use Developer command prompt because of the build of native parts, which as I said earlier, can't really build without VS for now.

@ViktorHofer
Copy link
Member

Ok makes sense. -Thanks for the update.

@ViktorHofer
Copy link
Member

I strongly believe we should find a solution for We depend on the VC++ headers and libs as soon as possible. It would sweet if we could get rid of the Developer Command Prompt necessity for the native part till 3.0.

@ViktorHofer
Copy link
Member

Duplicates dotnet/arcade#64

@msftgits msftgits transferred this issue from dotnet/corefx Jan 31, 2020
@msftgits msftgits added this to the 3.0 milestone Jan 31, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 20, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-Infrastructure-libraries enhancement Product code improvement that does NOT require public API changes/additions
Projects
None yet
Development

No branches or pull requests

6 participants