为了证明概念,我构建了一个非常简单的.NET Framework 4.6库,将其发布为NuGet包,并将其包含在一个简单的.NET Core Web应用程序中。
目前,我似乎只能通过从project.json依赖项块中删除Microsoft.NETCore.App引用,并将frameworks属性中的netcoreapp1.0部分替换为net461块来使项目构建和运行。
完整的project.json如下:
{
"dependencies": {
/*"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},*/
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"FileIOLibrary_1_0_0_0": "1.0.0"
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},
/*"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8",
"net461"
]
}
},*/
"frameworks": {
"net461": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"publishOptions": {
"include": [
"wwwroot",
"web.config"
]
},
"scripts": {
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
这基本上意味着所有的引用都是.NET Framework 4.6库。
无论如何,我有几个关于其他可用选项的问题:
- 是否可以指定只有我的导入库应针对.NET 4.6 Framework,而所有其他引用都应使用.NET Core?如果是这样,这意味着我可以将Microsoft.NETCore.App引用添加回项目中。
- 如果上述不可行,我能否将我的库重新构建为兼容的.NET标准库(我相信1.6版本在Framework 4.6和Core 1.0.0之间是兼容的)?我无法在Visual Studio中看到允许我构建针对.NET Standard的库的选项,因此如果它是一个选项,我会很感激一些指示。