Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用本地NuGet包的引用不明确_C#_Asp.net Core_Nuget Package - Fatal编程技术网

C# 使用本地NuGet包的引用不明确

C# 使用本地NuGet包的引用不明确,c#,asp.net-core,nuget-package,C#,Asp.net Core,Nuget Package,在未接触的RC2 ASP.NET Web应用程序中引用本地构建的NuGet包进行诊断(克隆/构建当前repo-在我的机器上,它构建为“Microsoft.AspNetCore.diagnostics”:“1.0.0-t002a46b59”),NuGet会自动开始还原包 这样做似乎创建了一个不明确的引用,因为my Program.cs无法区分要使用的.UseContentRoot的版本 我对project.json和NuGet的关系不够熟悉,无法确定根本原因是什么 我是否错过了过程中的一个步骤,

在未接触的RC2 ASP.NET Web应用程序中引用本地构建的NuGet包进行诊断(克隆/构建当前repo-在我的机器上,它构建为“Microsoft.AspNetCore.diagnostics”:“1.0.0-t002a46b59”),NuGet会自动开始还原包

这样做似乎创建了一个不明确的引用,因为my Program.cs无法区分要使用的.UseContentRoot的版本

我对project.json和NuGet的关系不够熟悉,无法确定根本原因是什么

我是否错过了过程中的一个步骤,或者是否有更根本的原因导致了这个问题

myproject.json如下所示:

{
  "userSecretsId": "aspnet-JamieTest-ffeafaa8-e549-4ce5-89f2-69089954bd81",

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0-rc2-3002702",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Diagnostics": "1.0.0-t002a46b59",
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview1-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-final",
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview1-final",
      "type": "build"
    },
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc2-final",
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview1-final",
      "type": "build"
    },
    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
      "version": "1.0.0-preview1-final",
      "type": "build"
    }
  },

  "tools": {
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": "portable-net45+win8+dnxcore50"
    },
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": "portable-net45+win8+dnxcore50"
    },
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": [
        "portable-net45+win8+dnxcore50",
        "portable-net45+win8"
      ]
    },
    "Microsoft.Extensions.SecretManager.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": "portable-net45+win8+dnxcore50"
    },
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview1-final",
      "imports": [
        "portable-net45+win8+dnxcore50",
        "portable-net45+win8"
      ]
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "dnxcore50",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "gcServer": true
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

在编写时,存储库包含一个可重构多个基于宿主的扩展方法的位置的

不幸的是,RC2的文件->新项目输出正在查看扩展方法的先前位置。由于本地构建的NuGet包和RC2输出使用不同的实现,编译器无法确定哪一个是正确的

我并不担心使用哪种实现,只要它们是相同的,阻力最小的方法是将本地构建的NuGet包更改为使用Microsoft.AspNetCore.Hosting.Abstractions的RC2版本

虽然这纠正了眼前的问题,但我在运行时遇到了另外两个问题,其中包含的依赖项注入未能加载所需的类型

总的来说,我必须对Diagnostics project.json文件进行三项更改,以便在Visual Studio中加载并调试本地构建的NuGet包:


在编写本文时,存储库包含一个可重构多个基于宿主的扩展方法位置的方法

不幸的是,RC2的文件->新项目输出正在查看扩展方法的先前位置。由于本地构建的NuGet包和RC2输出使用不同的实现,编译器无法确定哪一个是正确的

我并不担心使用哪种实现,只要它们是相同的,阻力最小的方法是将本地构建的NuGet包更改为使用Microsoft.AspNetCore.Hosting.Abstractions的RC2版本

虽然这纠正了眼前的问题,但我在运行时遇到了另外两个问题,其中包含的依赖项注入未能加载所需的类型

总的来说,我必须对Diagnostics project.json文件进行三项更改,以便在Visual Studio中加载并调试本地构建的NuGet包:


本地构建的
Microsoft.AspNetCore.Diagnostics
有哪些依赖项?原因很可能是您本地构建的
Microsoft.AspNetCore.Diagnostics
拉取了一个过时的包(即
Microsoft.AspNet.*
one)。因此,您将得到同一程序集的两个版本(具有两个不同的名称),其中都注册了相同的扩展方法。这就是这个消息的原因。在@Tseng上的solution explorerSpot中的依赖关系树视图中检查引用的库依赖关系-我设法确定了根本原因。现在发布答案。对本地构建的Microsoft.AspNetCore.Diagnostics有什么依赖关系?原因很可能是您本地构建的
Microsoft.AspNetCore.Diagnostics
拉取了一个过时的包(即
Microsoft.AspNet.*
one)。因此,您将得到同一程序集的两个版本(具有两个不同的名称),其中都注册了相同的扩展方法。这就是这个消息的原因。在@Tseng上的solution explorerSpot中的依赖关系树视图中检查引用的库依赖关系-我设法确定了根本原因。现在就发布答案。