novotnyllc / MSBuildSdkExtras

Extra properties for MSBuild SDK projects
MIT License
347 stars 42 forks source link

Clean up?! #21

Closed Nirmal4G closed 7 years ago

Nirmal4G commented 7 years ago

I did a clean up on this project during my journey of learning MSBuild, building new SDKs and stuff.

It's not that it needs to be cleaned but this looks better if you are trying to add, remove and/or modify the parts of the Package.

I don't want to break existing users and not break when it already works best. So, I ask here that if you are interested in accepting my PR?!

There are a few Name changes for properties, and for the Package name. Here's my project repo

Here's a preview of the new structure...

MSBuild.NET.Sdk
│   MSBuild.NET.Sdk.sln
│   
├───MSBuild.NET.Extras.Sdk
│   │   MSBuild.NET.Extras.Sdk.nuproj
│   │   MSBuild.NET.Extras.Sdk.nuspec
│   │   
│   ├───build
│   │   │   MSBuild.NET.Extras.Common.props
│   │   │   MSBuild.NET.Extras.Core.targets
│   │   │   MSBuild.NET.Extras.Sdk.props
│   │   │   MSBuild.NET.Extras.Sdk.targets
│   │   │   NuGet.Workarounds.targets
│   │   │   Platform.targets
│   │   │   
│   │   └───platforms
│   │       │   MonoAndroid.targets
│   │       │   Portable.targets
│   │       │   Silverlight.targets
│   │       │   Tizen.targets
│   │       │   Windows.targets
│   │       │   WindowsPhone.targets
│   │       │   WindowsPhoneApp.targets
│   │       │   Xamarin.iOS.targets
│   │       │   Xamarin.Mac.targets
│   │       │   Xamarin.TVOS.targets
│   │       │   Xamarin.WatchOS.targets
│   │       │   
│   │       ├───frameworkResolvers
│   │       │       Portable.v0.0.targets
│   │       │       Portable.v4.0.targets
│   │       │       Portable.v4.5.targets
│   │       │       Portable.v4.6.targets
│   │       │       
│   │       └───languageTargets
│   │               CommonAfter.targets
│   │               MonoAndroid.targets
│   │               Portable.targets
│   │               Silverlight.targets
│   │               Windows.targets
│   │               WindowsPhone.targets
│   │               Xamarin.iOS.targets
│   │               Xamarin.Mac.targets
│   │               Xamarin.TVOS.targets
│   │               Xamarin.WatchOS.targets
│   │               
│   ├───buildMultiTargeting
│   │       MSBuild.NET.Extras.Sdk.props
│   │       MSBuild.NET.Extras.Sdk.targets
│   │       NuGet.Workarounds.targets
│   │       
│   └───Sdk
│           Sdk.props
│           Sdk.targets
│           
├───MSBuild.NET.Extras.Sdk.Tests
│       Class.cs
│       MSBuild.NET.Extras.Sdk.Tests.csproj
│       Test.targets
│       
└───NuGet.Build.Tasks.Pack
    │...
clairernovotny commented 7 years ago

Can you please summarize what these changes do? I definitely don't want to change the package name, but I'm open to updates to the overall project structure if there's a good reason.

Nirmal4G commented 7 years ago
  1. ~Added Sdk support (this only works if the MSBuildSdksPath is set or you can copy it to the Sdks folder in VS2017/dotnet Installation)~ (work in progress)
  2. I separated the targets by platform along with setting the language targets. (i.e. MonoAndroid -> MonoAndroid.targets, etc...)
  3. Added support for generic short frameworks of form (fx.nameNN.N-profile1<+profile2+...>)
  4. Removed NuGet Pack dependency and related workarounds
  5. Some little fixes here and there. (automagically because of restructuring and clean-up)

Other than that all of the behaviour remains the same. Almost all private properties' (_SdkExtras...) names are changed, since they are not clear and not to the context.

I can revert the Package name. But what about the Targets name? Can I leave it as it is (MSBuildSDKExtrasTargets)?