如何在asp.net vNext中使用现有代码

时间:2015-01-22 12:28:59

标签: asp.net-core

尝试使用asp.net vNext。

假设我有MyCode.dll汇编了一些代码,我希望在我的vNext项目中使用。如何引用现有的.net 4.5程序集?

我已将其打包到nuget包中,然后使用本地Feed将其添加到vNext项目中。还使用kpm restore实际下载了包。

看起来包已成功添加,但没有MyCode.dll的代码可用,它只是不被intelliSence和build throw Type or namespace chould not be found使用

我可以将代码从MyCode.dll移动到asp.net 5类库,但是我需要重用其他项目也使用的现有dll,比如旧版本的asp.net等。

3 个答案:

答案 0 :(得分:3)

如果您使用的是latest VS 2015 CTP,最简单的方法是将现有的.NET 4.5项目添加到ASP.NET 5.0解决方案中,并使用"添加引用"用于引用4.5库的对话框。这将使您的project.json文件看起来像这样:

"frameworks": {
    "aspnet50": {
        "dependencies": {
            "MyClassLib": "1.0.0-*"
        }
    },
    "aspnetcore50": { }
},

在运行完整 ASP.NET 5.0运行时,您只能使用4.5库,因此请确保项目设置未设置为以ASP.NET 5.0 Core运行时为目标。如果您希望您的库是跨平台的并且以Core运行时为目标,那么您需要将其重建为ASP.NET 5.0库。

enter image description here

答案 1 :(得分:3)

我的工作是添加一个本地nuget服务器并正确规范,打包并将程序集推送到nuget服务器,这样你可以定位多个版本的.NET,如aspnetcore5,aspnet5和net45。在创建程序集的规范文件时,不要忘记为每个版本包含相应的依赖项。

要创建本地服务器,请参阅说明here

请参阅示例规范。

<dependencies>
  <group targetFramework="net45">
    <dependency id="Newtonsoft.Json" version="6.0.6" />
  </group>
  <group targetFramework="aspnet50">
    <dependency id="Newtonsoft.Json" version="6.0.6" />
    <dependency id="System" version="4.0.0.0" />
    <dependency id="System.Core" version="4.0.0.0" />
    <dependency id="Microsoft.CSharp" version="4.0.0.0" />
    <dependency id="mscorlib" version="4.0.0.0" />
  </group>
  <group targetFramework="aspnetcore50">
    <dependency id="Newtonsoft.Json" version="6.0.6" />
    <dependency id="System.Runtime" version="4.0.20-beta-22231" />
    <dependency id="System.Collections" version="4.0.10-beta-22516" />
  </group>
</dependencies>

Sample Package

答案 2 :(得分:0)

当我添加&#34;旧图书馆&#34;到新的ASP.NET,我得到内部服务器500.在IISExpress中有一些错误。 具体使用System.Reflection.ReflectionTypeLoadException:无法加载一个或多个请求的类型。检索LoaderExceptions属性以获取更多信息。

经过研究和DNX的一些内部调试,我们终于找到了失败的根源。

具有显示名称&#39; System.Web.Mvc&#39;的程序集。未能加载“匿名者”#39; AppDomain的绑定上下文ID为1.失败的原因 是:System.IO.FileNotFoundException:无法加载文件或程序集System.Web.Mvc,Version = 5.2.3.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35&#39;或其中一个依赖项。系统不能        找到指定的文件。

As&#34;我的年长&#34;图书馆正在使用旧的MVC。我在提交以下命令后更新了我的库:

安装包Microsoft.AspNet.WebApi.Core -version 5.2.3

得出以下结论:

如果您尝试在ASP.NET vNext中使用的库依赖或使用MVC 5.2.3或更早版本,则无法在新框架内使用。