Description
Type of issue
[ ] Bug
[ ] Question (e.g. about handling/usage)
[X] Request for new feature/improvement
Expected Behavior
Build QRCoder project against multiple target frameworks in one .csproj/.sln
Current Behavior
There are multiple .csproj and .sln files for the various target frameworks. The impact of changes made to files in one .csproj/.sln with respect to other framework specific .csproj/.sln may not be immediately known at build time in VS (#154). I believe some scripts are in place to help with this, but I believe building for all target frameworks with one gesture is preferable.
Possible Solution
Use the new .csproj file format to target multiple frameworks from a single .csproj (extend the existing QRCoder.NETCore20.csproj and remove the other framework specific .csproj files). Consolidate the Demo/Test .csproj's into a solution with the updated csproj.
The current target frameworks (from .csproj):
- NET35
- NET40
- PCL (Profile 111)
- NETSTANDARD2.0
Note: PCL Profile 111 maps to NETSTANDARD1.1
Proposed <TargetFrameworks>
:
<PropertyGroup>
<TargetFrameworks>net35;net40;netstandard1.1;netstandard2.0</TargetFrameworks>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
</PropertyGroup>
Note: Other targets could be easily added and tested in the one .csproj.
The value in such a change is F5 building all target frameworks at once. One build error for any target fails the build. Also, it is less confusing for prospective contributors if there is only one solution/main project ;-) .
Another positive side effect is that NuGet packaging is made easy with the dotnet pack
command (I don't believe it even requires a manual .nuspec file #57).