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

Add Microsoft.Data.Entity.Build.Tasks #892

Merged
merged 1 commit into from
Jun 4, 2019
Merged

Conversation

bricelam
Copy link
Contributor

@bricelam bricelam commented Jun 4, 2019

@bricelam seven years ago:
We don't need to open source that. It never changes and will always ship as part of .NET Framework.

@bricelam seven years later:
Crap. We need it on .NET Core.

Changes to the original code:

  • Updated file headers
  • Renamed BuildTasksResources.resx to Properties/Resources.resx
  • Removed unused XmlConstants members
  • Simplified EntityDesignerUtils by inlining some constants

Fixes #828

@bricelam bricelam requested a review from ajcvickers June 4, 2019 17:20
@bricelam
Copy link
Contributor Author

bricelam commented Jun 4, 2019

@natemcmaster @pranavkm Any gotchas implementing a cross-platform MSBuild task or using NuGet's buildTransitive directory?

@pranavkm
Copy link
Contributor

pranavkm commented Jun 4, 2019

@javiercn used the buildTransitive feature recently with build targets, he might know more.

@javiercn
Copy link
Member

javiercn commented Jun 4, 2019

AFAIK it works just fine.

@javiercn
Copy link
Member

javiercn commented Jun 4, 2019

The way we build packages is we create three folders and have buildTransitive point to buildMultitargetting and that one point to build

@bricelam bricelam merged commit 20f9c74 into dotnet:master Jun 4, 2019
@bricelam bricelam deleted the task branch June 4, 2019 17:59
@bricelam
Copy link
Contributor Author

bricelam commented Jun 4, 2019

Oh interesting. Presumably for compatibility with different NuGet clients? I think this one is TFM-specific so buildCrosstargeting may not make sense, but build might.

@bricelam
Copy link
Contributor Author

bricelam commented Jun 4, 2019

Yeah, i think I’ll add a build directory. This would enable net40 projects building with older NuGet clients.

@natemcmaster
Copy link
Contributor

natemcmaster commented Jun 4, 2019

@javiercn's suggestion is a good one. Only one of the build*/ folder conventions is used at a time. I've adopted the practice of only shipping one copy of the "real" props and targets which understand the MSbuild context they are in (inner or outer build), and then adding several dummy targets which match the various NuGet conventions, build/, buildMultiTargeting/, buildTransitive/, sdk/, etc.

Another gotcha is that there is no way to make buildMultiTargeting/, but since it doesn't appear you need to import props/targets in the outer build of a multi-targeting app, you're okay on this one.

/cc @jainaashish in case he is aware of any other gotchas with buildTransitive/

@bricelam
Copy link
Contributor Author

bricelam commented Jun 4, 2019

Updated in #894

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.

EDMX Metadata Generator options for .NET Core
5 participants