使用" global.json"解决依赖关系项目财产

时间:2016-12-14 21:53:25

标签: c# asp.net json

使用 Asp.Net Core 项目并使用" global.json "拉入外部依赖,似乎工作了一段时间。但最近它停止了工作。外部库不会进入解决方案资源管理器视图。

为了弄清楚发生了什么,我设置了一个简单的例子。 以下是我使用的各种文件和程序:

  

名为 MyProject 的项目。

使用的 sdk版本如下所示:

~\MyProject> dotnet --info
  .NET Command Line Tools (1.0.0-preview2-1-003177)
  Product Information:
   Version:            1.0.0-preview2-1-003177
   Commit SHA-1 hash:  a2df9c2576
  Runtime Environment:
   OS Name:     Windows
   OS Version:  10.0.14393
   OS Platform: Windows
   RID:         win10-x64*

" MyProject"" 解决方案资源管理器视图

Solution 'MyProject' (1 project)
   Solution Items
  global.json
   src
      MyProject
        Properties
        References
        Program.cs
        project.json

项目的 program.cs 源代码:

namespace MyProject
{
   public class Program
   {
       public static void Main(string[] args)
       {
           var Var1 = new MyLib();
           Console.WriteLine($"{Var1.VariableOne}");
       }
   }

}

project.json 文件:

{
  "version": "1.0.0-*",
  "buildOptions": {
   "emitEntryPoint": true
  },

  "dependencies": {
    "Microsoft.NETCore.App": "1.0.1"
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50"
    }
  }
}

global.json 文件:

{
  "projects": [ "src", "../MyLibrary/src" ],
  "sdk": {
    "version": "1.0.0-preview2-1-003177"
  }
}
  

图书馆项目名称为: MyLibrary

使用的 sdk 版本:

~\MyLibrary\src\MyLibrary>dotnet --info

.NET Command Line Tools (1.0.0-preview2-1-003177)

Product Information:
 Version:            1.0.0-preview2-1-003177
 Commit SHA-1 hash:  a2df9c2576

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.14393
 OS Platform: Windows
 RID:         win10-x64

" MyLibrary" 解决方案资源管理器视图

Solution 'MyLibrary' (1 project)
 > Solution Items
    > global.json
 > src
    > MyLibray
        > Properties
        > References
        > Class1.cs
        > project.json

" MyLibrary" class.cs 代码:

namespace MyLibrary
{
    public class Class1
    {
        public string VariableOne { get; set; } = "MessageOne";
        public int MyProperty { get; set; }
    }
}

" MyLibrary" global.json 文件是:

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "1.0.0-preview2-1-003177"
  }
}
  

在命令行中打包库的步骤:

 > cd src\MyLibrary
 > dotnet pack

以下是包装的结果:

~\MyLibrary\src\MyLibrary\bin\Debug>dir
12/14/2016  06:33 PM             2,926 MyLibrary.1.0.0.nupkg
12/14/2016  06:33 PM             5,264 MyLibrary.1.0.0.symbols.nupkg
12/14/2016  06:22 PM    <DIR>          netstandard1.6

鉴于以上所有内容,在我成功开始工作之前,现在,当我尝试恢复&#34; MyProject&#34;的引用时,&#34; MyLibrary&#34;包裹不被拿起。解决方案资源管理器保持不变(当然&#34; Class1&#34;引用仍未解析)。

我忘了提到我正在使用VS 2015社区。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

好的,弄清楚我错过了什么。 在MyProject的project.json文件中,我需要添加以下依赖项:

"MyLibrary": {
    "target": "Project",
    "version": "*"
    }