gpt4 book ai didi

c# - 在解决方案中添加另一个外部项目的引用

转载 作者:行者123 更新时间:2023-11-30 21:37:04 44 4
gpt4 key购买 nike

使用:.net 核心 mvc c#

我有一个解决方案,它有一个 .net mvc 核心网络应用程序和一个类库。有一个我想要这个解决方案的共享项目(类库)这是不同项目的一部分(也是不同的解决方案)。

所有这些项目都存储在我们本地的 GIT 存储库中。

如果我将外部项目添加为我现有项目中的项目依赖项,那么我们必须有 2 个外部项目副本维持。如果某些开发人员更新了外部项目,该更改如何传播到使用它的其他项目。并且可能有一些开发人员在我们想要阻止的本地解决方案下更新外部项目。由于都在 GIT 中是否有可能以某种方式使依赖关系相关,以便其他人知道外部的任何变化。

那么基本上我们如何才能防止任何人对外部项目进行本地更新,同时确保对外部项目的任何更新都可用使用它们的任何其他项目。

最佳答案

您可以使用多种方法来实现这一目标。

Quick:两种解决方案中的引用项目

最快的方法是从两个解决方案中引用共享项目。这样,您可以在两个项目中使用它,并且更改会传播到另一个解决方案,因为您基本上是在处理相同的文件。然而,这种方法的一个巨大缺点是,如果您对解决方案 A 进行了与解决方案 B 不兼容的更改(例如,删除了解决方案 B 中使用的方法),您将只有在处理解决方案 B 时才会发现。

简单:单一解决方案

要解决此问题,您可以将解决方案合并为一个包含共享项目以及解决方案 A 和 B 中的其他项目的解决方案。这样,您仍然可以方便地在解决方案中引用项目。此外,如果您构建完整的解决方案,您会立即收到有关中断更改的通知。如果这种方法在解决方案规模和团队结构方面对您来说可行,我会赞成这种方法。由于您已经共享一个 Git 存储库,因此我认为这种方法非常值得考虑。

Nuget 包

如果您想要将解决方案严格分开,则需要遵循更复杂的过程。例如,您可以将共享项目移动到它自己的解决方案中,并创建一个具有清晰构建和版本控制策略的 Nuget 包。您可以在包提要上托管 Nuget 包(例如在 Visual Studio Team Services 上)。然后,解决方案 A 和 B 可以从提要中引用 Nuget 包,并在有新版本可用时更新它。

这里是使用 nuspeccsproj 创建 nuget 包的官方文档

Create .NET Standard 2.0 packages with Visual Studio 2017 [CSPROJ]

Creating NuGet packages [NUSPEC]

关于c# - 在解决方案中添加另一个外部项目的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47634380/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com