在我的ASP.NET 5 RC1项目中(仅针对dnx46)我正在尝试添加一个针对.net 4.6的(经典)类库项目的引用。
我在构建时遇到此错误: ... \ MSBuild \ 14.0 \ bin \ Microsoft.Common.CurrentVersion.targets(1819,5):警告MSB3274:无法解析主要引用“... \ ClassLibrary1.dll”,因为它是针对“。”构建的。 NETFramework,Version = v4.6“框架。这是比当前目标框架“.NETFramework,Version = v4.5.1”更高的版本。
为什么会这样?我的ASP.NET 5项目没有针对4.5.1。根据project.json文件,它只针对dnx46。我在任何地方都找不到.net 4.5.1。
这是我的WebApplication项目的project.json:
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final"
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
},
"frameworks": {
"dnx46": {
"dependencies": {
"ClassLibrary1": "1.0.0-*"
}
},
},
"exclude": [
"wwwroot",
"node_modules"
],
"publishExclude": [
"**.user",
"**.vspscc"
]
}
这是“包装”过程为我的ClassLibrary项目创建的project.json:
{
"version": "1.0.0-*",
"frameworks": {
"net46": {
"wrappedProject": "../../ClassLibrary1/ClassLibrary1.csproj",
"bin": {
"assembly": "../../ClassLibrary1/obj/{configuration}/ClassLibrary1.dll",
"pdb": "../../ClassLibrary1/obj/{configuration}/ClassLibrary1.pdb"
}
}
}
}
答案 0 :(得分:2)
如果使用VS 2015 Update 1构建警告仍然存在,但Web应用程序运行良好,可以从.net4.6程序集调用方法。
答案 1 :(得分:0)
您可能正在体验VS 2015. Setting right target framework for ASP.NET 5 web project。尽管项目针对4.6框架,但问题与IIS目标4.5.1有关。
从Visual Studio构建或运行IIS时,是否发生问题?
以下内容适用于我们。
这是一个经典的.NET Framework类库,它以.NET 4.6作为目标框架。有一个班级。
BowserKingKoopa.cs
namespace ClassLibraryNet46
{
public class BowserKingKoopa
{
public static string GetMessage()
{
return "Hello to BowserKingKoopa from ClassLibraryNet46!";
}
}
}
这是一个只有Startup.cs类的ASP.NET核心Web应用程序。我们使用Visual Studio添加对Net46项目的引用(右键单击,添加引用...)
Startup.cs
using Microsoft.AspNet.Builder;
using Microsoft.AspNet.Hosting;
using Microsoft.AspNet.Http;
namespace WebApplicationNetCore
{
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseIISPlatformHandler();
app.Run(async (context) =>
{
var message =
ClassLibraryNet46.BowserKingKoopa.GetMessage();
await context.Response.WriteAsync(message);
});
}
public static void Main(string[] args) =>
WebApplication.Run<Startup>(args);
}
}
project.json
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"dependencies": {
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final"
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel"
},
"frameworks": {
"dnx46": {
"dependencies": {
"ClassLibraryNet46": "1.0.0-*"
}
}
}
}