You may keep using csproj for net45 target and add project.json that targets both "net45" and "netstandard1.x" frameworks (use project.json of my library as a sample):
"frameworks": {
"net45": {
"frameworkAssemblies": {
"System.Data": "",
"System.ComponentModel.DataAnnotations" : ""
},
"buildOptions": {
"define": []
}
},
"netstandard1.5": {
"dependencies": {
"NETStandard.Library": "1.6.0",
"System.Data.Common": "4.1.0",
"System.Reflection": "4.1.0",
"System.Reflection.Primitives": "4.0.1",
"System.Threading": "4.0.11",
"System.Threading.Tasks": "4.0.11",
"System.ComponentModel.Annotations": "4.1.0"
},
"buildOptions": {
"define": [ "NET_STANDARD" ]
}
}
Note that you can define conditional compilation constants for net45 or netcore specific code snippets.
When you have project.json, you may prepare nuget package that includes both net45 and netstandard builds with the following command:
> dotnet pack --configuration Release
Don't forget that "dotnet pack" doesn't use information from nuspec file and all metadata should be present in project.json.