在同一解决方案中使用一个项目对另一个项目的依赖
Use dependency from one project to another in the same solution
这是一种在同一个解决方案中使用从一个项目到另一个项目的依赖关系的方法吗?例如:
ComputerVisionProject (solution):
1. ComputerVision.FaceRecognition
2. ComputerVision.Core
3 .ComputerVision.UI
在第一个项目中:ComputerVision.FaceRecognition,我安装了一个块,例如“OpenCV”,我可以通过“使用 OpenCV”使用它的所有功能,但仅限于 ComputerVision.FaceRecognition 项目。
我想要的是在第二个项目 ComputerVision.Core 中使用相同的功能。但我不想再次安装金块,似乎只有“使用 OpenCV”不起作用(即使我将整个项目添加为对第二个项目的引用)是否有可能制作另一种类型的参考或类似于:“使用 ComputerVision.FaceRecognition.OpenCV” ?
使用项目引用。
https://docs.microsoft.com/en-us/visualstudio/ide/managing-references-in-a-project?view=vs-2019
进行测试;创建一个包含两个项目的新解决方案。
在一个项目中,添加一个 nuget 包。说,Newtonsoft.Json
将第二个项目的项目引用添加到第一个
依赖关系现在应该是这样的;
现在在 TestConsoleApp 中,您可以添加 using 语句来访问 TestConsoleApp2 中使用的 nuget 包。
例如;
using System;
using Newtonsoft.Json;
namespace TestConsoleApp
{
class Program
{
static void Main(string[] args)
{
var output = JsonConvert.SerializeObject(new ExampleObject() { field = "value" });
Console.WriteLine(output);
}
}
public class ExampleObject
{
public string field;
}
}
当运行输出{"field":"value"}
这是一种在同一个解决方案中使用从一个项目到另一个项目的依赖关系的方法吗?例如:
ComputerVisionProject (solution):
1. ComputerVision.FaceRecognition
2. ComputerVision.Core
3 .ComputerVision.UI
在第一个项目中:ComputerVision.FaceRecognition,我安装了一个块,例如“OpenCV”,我可以通过“使用 OpenCV”使用它的所有功能,但仅限于 ComputerVision.FaceRecognition 项目。 我想要的是在第二个项目 ComputerVision.Core 中使用相同的功能。但我不想再次安装金块,似乎只有“使用 OpenCV”不起作用(即使我将整个项目添加为对第二个项目的引用)是否有可能制作另一种类型的参考或类似于:“使用 ComputerVision.FaceRecognition.OpenCV” ?
使用项目引用。
https://docs.microsoft.com/en-us/visualstudio/ide/managing-references-in-a-project?view=vs-2019
进行测试;创建一个包含两个项目的新解决方案。 在一个项目中,添加一个 nuget 包。说,Newtonsoft.Json 将第二个项目的项目引用添加到第一个
依赖关系现在应该是这样的;
现在在 TestConsoleApp 中,您可以添加 using 语句来访问 TestConsoleApp2 中使用的 nuget 包。
例如;
using System;
using Newtonsoft.Json;
namespace TestConsoleApp
{
class Program
{
static void Main(string[] args)
{
var output = JsonConvert.SerializeObject(new ExampleObject() { field = "value" });
Console.WriteLine(output);
}
}
public class ExampleObject
{
public string field;
}
}
当运行输出{"field":"value"}