【问题标题】:VS2015 is unable to reference project dependenciesVS2015 无法引用项目依赖
【发布时间】:2015-09-08 21:15:51
【问题描述】:

我正在尝试将解决方案中的类库项目引用到一个简单的控制台应用程序。但似乎 Visual Studio 不会让我这样做。

我已经四处搜索,我一直在寻找有关如何添加依赖项的指南,但似乎没有人遇到相同的问题,因为依赖项已添加到项目中。

如果你看上面的图片,你会发现这只是一个简单的项目,带有类库的全新控制台应用程序,除了依赖项之外没有任何编辑,以及试图从类中引用 Class1.cs 的额外行图书馆。

我收到一条智能感知消息,建议我添加对项目的引用,如果我单击它,则没有任何反应。

您也可以看到,我尝试手动添加 using 语句,但没有成功。它只是说“无法解析符号 ClassLibrary1”

图像显示我为项目添加了依赖项。

显示我已尝试添加项目引用的图像

现在,蜜蜂说了这么多。我想从事的项目也发生了同样的事情,但是在该项目上,当我尝试将类库添加为参考时,我只会收到消息“无法将项目 X 添加为参考”。但我可以添加依赖项,但它基本上给了我与这个干净项目相同的错误。

我正在使用 Visual Studio 2015 - 企业版。

Class Library Project.json: 
    {
      "version": "1.0.0-*",
      "description": "ClassLibrary1 Class Library",
      "authors": [ "Tweek" ],
      "tags": [ "" ],
      "projectUrl": "",
      "licenseUrl": "",

      "dependencies": {
        "System.Collections": "4.0.10-beta-23019",
        "System.Linq": "4.0.0-beta-23019",
        "System.Threading": "4.0.10-beta-23019",
        "System.Runtime": "4.0.10-beta-23019",
        "Microsoft.CSharp": "4.0.0-beta-23019"
      },

      "frameworks": {
        "dotnet": { }
      }
    }

ConsoleApp1 Project.json 按照答案之一的建议进行编辑后:

    {
  "version": "1.0.0-*",
  "description": "ConsoleApp1 Console Application",
  "authors": [ "Tweek" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "dependencies": {
  },

  "commands": {
    "ConsoleApp1": "ConsoleApp1"
  },

  "frameworks": {
    "dnx451": {
      "dependencies": {
        "ClassLibrary1": "1.0.0-*"
      }
    }
  }
}

非常感谢任何帮助!

【问题讨论】:

    标签: .net visual-studio-2015 dependency-management portable-class-library


    【解决方案1】:

    您的控制台应用程序的目标是DNX 4.5.1,它是新的 ASP.NET 运行时的一部分。如果您创建面向 .NET 4.5 的类库,由于新框架,它可能不兼容。

    您可以通过使用新的Class Library (Package) 项目创建您的类库来解决此问题,该项目可以针对新框架。

    或者,编辑控制台应用程序的 project.json 并从 frameworks 部分中删除 dnxcore50 并添加对库的引用:

    {
        ...
        "frameworks": {
            "dnx451": {
                "dependencies": {
                    "ClassLibrary1": "1.0.0-*"
                }
            }
        }
    }
    

    【讨论】:

    • New Project Window Image 显示当我创建新解决方案时出现的窗口告诉我我正在使用您提到的Class Library (Package)。它的目标是.net 4.5.2,它在窗口中显示DNX 4.5.1,我从你提到的框架中删除了dnxcore50,没有结果。我已经用 project.json 文件更新了问题。
    • 您可以尝试两件事,将类库的框架从dotnet 更新为dnx451,并将依赖项从dnx451 子部分移动到主要依赖项部分。我认为两者都不应该真正有所作为,但值得一试。
    • 好的,所以将 dotnet 更新为 dnx451 是可行的,但对于我有一个 MVC 应用程序和一个类库(开箱即用)的原始问题,不能这样说。似乎 Web 应用程序没有引用 DNX 4.5.2/1
    【解决方案2】:

    找到了解决问题的办法——

    必须使用“Windows”下的“类库”或“类库(便携)”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-24
      • 1970-01-01
      • 2021-01-04
      • 1970-01-01
      相关资源
      最近更新 更多