我正在尝试使用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
答案 0 :(得分:4)
简答:您需要在net45
添加project.json
配置,然后可以添加React
依赖关系(假设其为{{1}二进制)。
注意:我已更新简答以反映添加到问题中的新信息。下面的长答案纯粹是信息性的。
依赖性解决方案的信息: 需要注意的一点是,在vNext(ASP.NET 5)中,Visual Studio不是必需的。因此,我们无法用“它在我的解决方案中”来思考问题,因为这是一个Visual Studio概念,并且所有内容都设计为在Visual Studio之外工作。
因此,我们首先谈谈可以从vNext中的项目引用的内容:
我认为这就是我忘记的一切。
现在这里的美丽是他们的参考都是可以互换的。这意味着您添加依赖项net45
可以引用dll,包或源代码(如果存在冲突,源代码具有最高优先级)。请注意,将版本保留为"React": ""
实质上意味着“1.0”OR源代码。
现在读完这篇文章之后,你可能会想,o.k。很酷我刚刚写了这个问题,说我有冲突,为什么我的依赖关系没有正确解决?因此,首先有两种方法可以为可以添加依赖项的有效源代码/项目提供位置。
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。