首页 文章

从ASP.NET Core MVC Web应用程序(RC2)引用完整框架库项目?

提问于
浏览
9

我目前正在使用ASP.NET Core MVC RC2,它假设支持从Core MVC Web应用程序项目引用完整的框架库项目 . 但我似乎无法使其发挥作用 .

我有一个现有的完整框架库项目,我想与新的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但我无法使用那里的信息来解决我的问题 .

Here are the steps to reproduce the issue:
我在Visual Studio 2015中基于"Web Application"模板创建了一个带有".NET Core" "ASP.NET Core Web Application"项目的解决方案 .

![pic 1

![pic 2

然后我在解决方案中添加了一个新的“Windows”“类库”项目 .

enter image description here

所以在这一点上,解决方案看起来像这样:

pic 4

现在,当我尝试使用visual studio将Core MVC Web应用程序的引用添加到Full Framework库时,我收到一条错误消息,指出“ExampleLib的目标框架与当前项目ExampleWebApplicaiton中的目标不兼容 . ”:

enter image description here

这个错误看起来相当自我解释,似乎要我改变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?

2 回答

  • 4

    有一个模板允许您定位完整的.NET框架 - 抱歉,无法发布图像,但您可以转到:模板 - > Visual C# - > Web - > ASP.NET核心Web应用程序(.NET框架)

    请注意,您可以从上面的下拉列表中指定.NET Framework的版本(按照惯例) .

    这会将project.json更改为:

    "frameworks": {
    "net461": { }
    }
    

    (取决于您选择的框架版本) . 您现在可以添加对类库的引用 .

    "frameworks": {
        "net461": {
        "dependencies": {
        "ClassLibrary1": {
            "target": "project"
            }
         }
       }
    }
    
  • 1

    遵循Ron C的步骤,这是我刚刚测试过的web api项目的完整project.json .

    {
      "dependencies": {
        "Microsoft.AspNetCore.Mvc": "1.0.0",
        "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
        "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
        "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
        "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
        "Microsoft.Extensions.Configuration.Json": "1.0.0",
        "Microsoft.Extensions.Logging": "1.0.0",
        "Microsoft.Extensions.Logging.Console": "1.0.0",
        "Microsoft.Extensions.Logging.Debug": "1.0.0",
        "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0"
      },
    
      "tools": {
        "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
      },
    
      "frameworks": {
        "net461": {
          "imports": [
            "dotnet5.6",
            "portable-net45+win8"
          ],
          "frameworkAssemblies": {
            "System.Data": "4.0.0.0"
          }
        }
      },
    
      "buildOptions": {
        "emitEntryPoint": true,
        "preserveCompilationContext": true
      },
    
      "runtimeOptions": {
        "configProperties": {
          "System.GC.Server": true
        }
      },
    
      "publishOptions": {
        "include": [
          "wwwroot",
          "Views",
          "Areas/**/Views",
          "appsettings.json",
          "web.config"
        ]
      },
    
      "scripts": {
        "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
      }
    }
    

相关问题