Git:如何管理 C# 库的依赖关系? [关闭]

Posted

技术标签:

【中文标题】Git:如何管理 C# 库的依赖关系? [关闭]【英文标题】:Git: how manage dependences for your C# libraries? [closed] 【发布时间】:2020-12-13 20:49:55 【问题描述】:

我在 Rider 中编写 C# 应用程序,并且有几个自己编写的库。这些库构建为 .netcore 项目。 但是有一个库使用了另一个我的库,它被构建为解决方案。

我真的不知道如何在我的其他项目中使用它?我只是通常将我的 lib 项目克隆到解决方案文件夹中。但是这个库也是完整的解决方案。

你在工作中如何解决同样的问题?

【问题讨论】:

【参考方案1】:

您可以将其构建为 NuGet 包(从本地磁盘使用它或将其上传到 NuGet.Org 并从那里使用)

为此:

启动类库(.Net Standard 或 .Net Core)

像这样配置您的.csproj 文件:(netcoreapp3.1 示例)

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <Description>Any description here</Description>
    <Authors>Your name here</Authors>
    <Company />
    <PackageProjectUrl>your git hub repo link</PackageProjectUrl>
    <RepositoryUrl>your git hub repo link</RepositoryUrl>
    <RepositoryType>git</RepositoryType>
    <PackageTags>any keywords here with spaces NOT comma</PackageTags>
    <InludeSymbols>true</InludeSymbols>
    <SymbolPackageFormat>snupkg</SymbolPackageFormat>
    <PackageLicenseFile>License.md</PackageLicenseFile>
    <Version>1.0.2</Version>
  </PropertyGroup>

  <ItemGroup>
    <None Include="..\..\License.md">
      <Pack>True</Pack>
      <PackagePath></PackagePath>
    </None>
  </ItemGroup>
</Project>

对于这个Include="..\..\License.md"你需要添加License.md,你可以在网上找到或者从你的github复制。

构建项目后,您会在“\bin\Debug”中找到 .nupkg

如果您想将其上传到 NuGet.org:

    在 nuget.org 中注册一个帐户 上传你的包并按照那里的步骤,比如添加自述文件等等,非常简单的步骤。 需要这个库的项目,在项目上右击-->管理NuGet包,添加这个包。

如何将本地 Repo 添加为 NuGet 源?!

请看这篇文章: How do I install a NuGet package .nupkg file locally?

【讨论】:

如果我理解正确,我应该将所有依赖项转换为 nuget 包,然后将 subj 库也转换为 nuget 包,但将另一个库链接为 nuget 依赖项? @MaxLevs NuGet 包在字符串验证器等可重用组件(实用程序)的情况下有效。 @MaxLevs 如果您的可重用组件类似于 DAL 层等,我认为这不是很好的选择 @MaxLevs 但如果库始终使用相同的输入和输出,仍然是不错的选择 @MaxLevs 我回答你的问题了吗?

以上是关于Git:如何管理 C# 库的依赖关系? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何管理客户端 JavaScript 依赖项? [关闭]

如何导出具有依赖项的 SVN 存储库的一部分?

如何管理客户端JavaScript依赖项? [关闭]

移除git submodule并将模块转为普通模块依赖

如何解决源码包安装时的依赖性问题

C# 类库的开发/运行时许可机制? [关闭]