首页 > 解决方案 > 将项目转换为 nuget 包

问题描述

我有一个包含 30 个项目的解决方案,我想将它们发布为 30 个 NuGet 包。

将项目依赖项转换为包依赖项的最简单方法是什么?

标签: c#nuget

解决方案


为所有人创建nuspec文件csprojs而不是修改项目以依赖 nugets 是完全可以的。Nuget 将检测nuspec项目引用的文件,如果您有包依赖项,则不会为它们捆绑 dll nuspec

例如,我在我的项目中这样做了:

纽斯佩克

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>
    <id>QDARC.Queries.Linq</id>
    <version>1.0.3-alpha</version>
    <authors>Rafał Furman</authors>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>TSQL extension for AST model for SQL queries.</description>
    <dependencies>
        <dependency id="QDARC.Utilities" version="1.0.6" />
        <dependency id="QDARC.Queries.Model" version="1.0.3-alpha" />
        <dependency id="QDARC.Sql.Connector" version="1.0.3-alpha" />
        </dependencies>
  </metadata>
  <files>
    <file src="bin\Release\netstandard2.0\Qdarc.Queries.Linq.dll" target="lib\netstandard2.0" /> 
  </files>
</package>

和 csproj 片段

  <ItemGroup>
    <ProjectReference Include="..\Qdarc.Sql.Connector\Qdarc.Sql.Connector.csproj" />
    <ProjectReference Include="..\Qdarc.Queries.Formatter\Qdarc.Queries.Formatter.csproj" />
    <ProjectReference Include="..\Qdarc.Queries.Model\Qdarc.Queries.Model.csproj" />
  </ItemGroup>

你可以检查nuget 包,它只包含一个 dll。


推荐阅读