发布具有相同名称的nuget包时,在.net vNext中引用本地项目

时间:2015-02-02 00:58:07

标签: c# asp.net asp.net-core

我正在尝试使用VS 2015中的新vNext项目类型构建一个包。

我想在同一个解决方案中引用一个项目(它不是vNext),但它试图找到该项目的nuget包,而不是直接引用它。

我做错了什么?

{
    "version": "1.0.0-*",
    "dependencies": {
        "Microsoft.AspNet.Mvc": "6.0.0.0-beta2"
    },
    "frameworks": {
        "aspnet50": {
            "dependencies": {
                "React": "" //it cant find a package for this even though I have a project named this in my solution
            }
        },
        "aspnetcore50": {
            "dependencies": {
                "System.Runtime": "4.0.20-beta-22231"
            }
        }
    }
}

项目结构:

Solution Folder
 - src 
   - global.json {"sources": [""]} 
   - React (project folder)
   - My Library (project folder)
 - bin
   - Debug
     - React

2 个答案:

答案 0 :(得分:4)

简答:您需要在net45添加project.json配置,然后可以添加React依赖关系(假设其为{{1}二进制)。

注意:我已更新简答以反映添加到问题中的新信息。下面的长答案纯粹是信息性的。

依赖性解决方案的信息: 需要注意的一点是,在vNext(ASP.NET 5)中,Visual Studio不是必需的。因此,我们无法用“它在我的解决方案中”来思考问题,因为这是一个Visual Studio概念,并且所有内容都设计为在Visual Studio之外工作。

因此,我们首先谈谈可以从vNext中的项目引用的内容:

  1. 一个包裹。
  2. 源代码(字面意思是.cs文件),只要有一个project.json。
  3. A dll。
  4. 我认为这就是我忘记的一切。

    现在这里的美丽是他们的参考都是可以互换的。这意味着您添加依赖项net45可以引用dll,包或源代码(如果存在冲突,源代码具有最高优先级)。请注意,将版本保留为"React": ""实质上意味着“1.0”OR源代码。

    现在读完这篇文章之后,你可能会想,o.k。很酷我刚刚写了这个问题,说我有冲突,为什么我的依赖关系没有正确解决?因此,首先有两种方法可以为可以添加依赖项的有效源代码/项目提供位置。

    1. 暗示:尽力自动找到你周围的代码
    2. 指定:提供global.json以指示查找源代码的位置。
    3. 90%的时间你应该使用#2,其中#1你应该纯粹用于演示:)如果你能避免它。

      global.json在哪里?在父文件夹中 global.json中有什么?你需要的只是有效的json,它看起来像这样:

      ""

      使用此global.json,将发现{ "sources": ["src", "test"] } src文件夹中的所有源代码。

      又名:

      test

      此类文件夹结构的示例:https://github.com/aspnet/Mvc

      希望这有帮助!

答案 1 :(得分:2)

如果使用VS2015 CTP,可以通过检查项目属性/构建部分中构建的产出输出,自动创建nuget包。 nuget包将在解决方案的工件文件夹中创建,您需要手动推送那些nuget服务器。

关于您可以添加哪个项目作为参考有点棘手。这就是我做的。我使用vs2013创建了5个项目2,使用vs2015创建了3个项目,最后一项是测试项目参考的Web项目。

仅允许C#项目作为参考,目前不支持VB项目。假设你有一个在2013年创建的类库,你可以在没有升级的情况下将它们添加到VS2015解决方案(到目前为止),然后你可以将它们作为对其他vNext项目的引用添加,但是不能运行aspnet5core。

VNExt Project Reference Nuget Packages Creates VS2015 Options to create nuget packages