C# 当发布同名的nuget包时,在.net vNext中引用本地项目
我正在尝试在VS2015中使用新的vNext项目类型构建一个包 我想在同一个解决方案中引用一个项目(不是vNext),但它试图为该项目找到一个nuget包,而不是直接引用它 我做错了什么C# 当发布同名的nuget包时,在.net vNext中引用本地项目,c#,asp.net,asp.net-core,C#,Asp.net,Asp.net Core,我正在尝试在VS2015中使用新的vNext项目类型构建一个包 我想在同一个解决方案中引用一个项目(不是vNext),但它试图为该项目找到一个nuget包,而不是直接引用它 我做错了什么 { "version": "1.0.0-*", "dependencies": { "Microsoft.AspNet.Mvc": "6.0.0.0-beta2" }, "frameworks": { "aspnet50": {
{
"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
如果您使用VS2015 CTP,则可以通过检查项目属性/构建部分中的生成生成输出来自动创建nuget包。nuget包将在解决方案的工件文件夹中创建,您需要手动将这些工件推送到nuget服务器 关于你可以添加什么样的项目作为参考是有点棘手的。这就是我所做的。我使用vs2013创建了5个项目2个,使用vs2015创建了3个。最后一个是用于测试项目参考的web项目 只允许C#项目作为参考,目前不支持VB项目。假设您有一个2013年创建的类库,您可以将它们添加到VS2015解决方案中,而无需升级(到目前为止),然后您可以添加这些类库作为对其他vNext项目的引用,但不会在aspnet5core中工作
简短回答:您需要将
net45
配置添加到project.json
中,然后添加React
依赖项(假设它是net45
二进制)
注意:我已经更新了简短答案,以反映问题中添加的新信息。下面的详细答案纯粹是信息性的
依赖项解析信息:
需要注意的一点是,在vNext(ASP.NET5)中,不需要Visual Studio。因此,我们不能用“它在我的解决方案中”来考虑问题,因为这是一个VisualStudio概念,所有东西都设计为在VisualStudio之外工作
因此,让我们首先谈谈在vNext中可以从项目中引用什么:
“React”:“
可以引用dll、包或源代码(如果存在冲突,则源代码具有最高优先级)。请注意,将版本保留为“
本质上意味着“1.0”或源代码
现在读了这么多,你可能会想,好吧,酷,我刚刚写了这篇文章,说我有冲突,为什么我的依赖项不能正确解决?因此,首先有两种方法可以为有效的源代码/项目提供位置,您可以向其中添加依赖项
全局.json中包含什么?您只需要有效的json,它可以如下所示:
{
"sources": ["src", "test"]
}
使用这个global.json,将发现src
和test
文件夹中的所有源代码
又名:
此类文件夹结构的示例:
希望这有帮助 我的猜测是,您需要为本地程序集创建一个nuGet包。vNext@dbugger所以你不能引用一个本地项目而不把它转换成一个nuget包?当然不是这样的?我以为你在谈论创建一个包,但从一些阅读资料来看,似乎nuGet方法是受欢迎的。如果你使用的是Visual Studio 2015 CTP5,那么它将允许你在相同的解决方案中添加项目引用,即使它不是vnext类型。这非常有帮助,我更了解global.json的工作原理。然而,我仍然无法得到我的工作证明。我认为这可能与垃圾箱文件夹在一个奇怪的地方有关。我在我的问题中添加了文件夹结构,并尝试将源指向bin文件夹,但似乎没有任何想法(例如../bin/debug)?因此需要注意的是,
React
希望是一个与net45等效的项目,因此只能在project.json中的net45节点中使用。现在看到您的项目结构,您不需要global.json(它会自动找到您的项目)。更新答案以反映新的细节。
- global.json
- /src
-> A.cs
- /test
-> B.cs