Reference a Full Framework Library Project from ASP.NET Core MVC Web Application (RC2)?
我目前使用的是ASP.NET核心MVC RC2,它假定支持从核心MVC Web应用程序项目引用完整的框架库项目。但我似乎不能让它发挥作用。
我有一个现有的完整框架库项目,我想与一个新的核心MVC Web应用程序项目一起使用。但是,当我试图添加对库项目的引用时,我得到了一个错误,该错误表示它的目标框架与Web应用程序的目标框架不兼容。
为了简化问题,我创建了一个新的核心MVC Web应用程序和一个新的Windows代码库,并尝试将Web应用程序项目中的引用添加到库的项目中,得到了相同的错误消息。我已经搜索了堆栈溢出,我确实发现了一个似乎高度相关的问题:如何使ASP.NET核心RC2应用程序在具有旧的第三方依赖关系的net46框架上构建,但我无法使用那里的信息来解决我的问题。
以下是重现问题的步骤:我基于Visual Studio 2015中的"Web应用程序"模板创建了一个带有".NET核心"、"ASP.NET核心Web应用程序"项目的解决方案。
然后我在解决方案中添加了一个新的"Windows""类库"项目。
所以现在的解决方案是这样的:
现在,当我尝试使用Visual Studio将引用从核心MVC Web应用程序添加到完整的框架库时,我得到一个错误,即"examplelib具有与当前项目examplewebapplication中的目标不兼容的目标框架。":
这个错误似乎是不言自明的,并且似乎希望我更改Web应用程序所针对的框架,使其与库相同,这是完全有意义的。问题是我找不到关于如何做到这一点的文档,而且IntelliSense没有特别的帮助。
我怀疑我需要为Web应用程序更改以下
1 2 3 4 5 | "dependencies": { "Microsoft.NETCore.App": { "version":"1.0.0-rc2-3002702", "type":"platform" }, |
或
1 2 3 4 5 6 7 8 9 | "frameworks": { "netcoreapp1.0": { "imports": [ "dotnet5.6", "dnxcore50", "portable-net45+win8" ] } }, |
如何为核心MVC Web应用程序而不是.netcoreapp指定.netframework 4.6版?
有一个模板允许您以完整的.NET框架为目标-抱歉,还不能发布图像,但您可以转到:模板->Visual C->Web->ASP.NET核心Web应用程序(.NET框架)
请注意,您可以从上面的下拉列表中指定.NET框架的版本(通常如此)。
这会将project.json更改为:
1 2 3 | "frameworks": { "net461": { } } |
(取决于您选择的框架版本)。现在您可以添加对类库的引用。
1 2 3 4 5 6 7 8 9 | "frameworks": { "net461": { "dependencies": { "ClassLibrary1": { "target":"project" } } } } |
按照罗恩C的步骤,这里是我刚刚测试过的一个Web API项目的完整project.json,它工作正常。
2