我有一个现有的完整框架库项目,我想与新的Core MVC Web应用程序项目一起使用.但是当我尝试添加对库项目的引用时,我得到一个错误,指出它的目标框架与Web应用程序的目标框架不兼容.
为了尝试简化问题,我创建了一个新的Core MVC Web应用程序和一个新的Windows代码库,并尝试将Web应用程序项目的引用添加到库的项目中,并得到相同的错误消息.我搜索了堆栈溢出,我确实发现这个问题似乎非常相关:How to make ASP.NET Core RC2 app build on net46 framework with older third party dependencies但我无法使用那里的信息来解决我的问题.
以下是重现问题的步骤:
我在Visual Studio 2015中基于“Web应用程序”模板创建了一个带有“.NET Core”“ASP.NET Core Web Application”项目的解决方案.
然后我在解决方案中添加了一个新的“Windows”“类库”项目.
所以在这一点上解决方案看起来像这样:
现在,当我尝试使用visual studio将Core MVC Web应用程序的引用添加到Full Framework库时,我收到一条错误消息,指出“ExampleLib的目标框架与当前项目ExampleWebApplicaiton中的目标不兼容.”:
这个错误看起来相当自我解释,似乎要我改变Web应用程序所针对的框架,以便它与库相同,这非常有意义.问题是我找不到关于如何做到这一点的文档,智能感知并没有特别有用.
我怀疑我需要更改web应用程序的project.json文件的以下部分之一:
"dependencies": { "Microsoft.NETCore.App": { "version": "1.0.0-rc2-3002702","type": "platform" },
要么
"frameworks": { "netcoreapp1.0": { "imports": [ "dotnet5.6","dnxcore50","portable-net45+win8" ] } },
如何为Core MVC Web应用程序而不是.NETCoreApp指定.NETFramework版本4.6?
解决方法
模板 – > Visual C# – >网络 – > ASP.NET核心Web应用程序(.NET Framework)
请注意,您可以从上面的下拉列表中指定.NET Framework的版本(按照惯例).
这会将project.json更改为:
"frameworks": { "net461": { } }
(取决于您选择的框架版本).您现在可以添加对类库的引用.
"frameworks": { "net461": { "dependencies": { "ClassLibrary1": { "target": "project" } } } }