Skip to content

Multi-target the various platforms in one .csproj #188

Closed
@csturm83

Description

@csturm83

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):

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).

Other somewhat related issues: #44 #66

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions