将项目转换为nuget包

时间:2018-06-11 11:57:12

标签: c# nuget

我有30个项目的解决方案,我想发布为30个NuGet包。

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

1 个答案:

答案 0 :(得分:2)

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

例如我在我的project

中这样做了

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 package,它只包含单个dll。