将整个解决方案添加到nuspec以创建Nuget包

时间:2016-09-19 21:34:04

标签: c# asp.net visual-studio nuget

我正在创建一个nuget包作为模板的解决方案,我不得不一遍又一遍地创建。我觉得有一种更好的方法可以将整个项目添加为nuget包,然后单独指定所有文件。现在我有:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>SSOTemplateNonSAML</id>
    <version>1.0.0</version>
    <title>ssotemplate</title>
    <authors>Adam</authors>
    <owners>HQ</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>SSO's</description>
    <releaseNotes>Version 1.0</releaseNotes>
    <copyright>Copyright 2016</copyright>
    <tags>Template</tags>
  </metadata>
  <files>
    <file src="Properties\AssemblyInfo.cs" target="content"/>
  </files>
</package>

但我想要的是:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>SSOTemplateNonSAML</id>
    <version>1.0.0</version>
    <title>ssotemplate</title>
    <authors>Adam</authors>
    <owners>HQ</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>SSO's</description>
    <releaseNotes>Version 1.0</releaseNotes>
    <copyright>Copyright 2016</copyright>
    <tags>Template</tags>
  </metadata>
  <files>
    <file Take all the files in the solution />
  </files>
</package>

如何在不指定每个课程的情况下执行此操作?如果我不能这样做,我至少可以指定类库吗?谢谢! :)

2 个答案:

答案 0 :(得分:1)

构建类库项目后,它将生成一个包含项目中所有类文件内容的dll。我们可以使用以下命令直接打包这个程序集。

  

nuget spec MyAssembly.dll

如果在汇编中有任何其他文件未构建为内容,您可以在<file>节点中分配文件文件夹,如下所示:

<files>
    <file src="..\..\SomeRoot\**\*.*" target="" />
</files>

请参阅:

https://docs.nuget.org/create/creating-and-publishing-a-package

如果一个解决方案中有多个项目,我们可以在.nuspec文件中添加以下格式的类库程序集。

 <file src="A\bin\Release\A.dll" target="lib" />
 <file src="B\bin\Release\B.dll" target="lib" />

答案 1 :(得分:1)

您可以使用NuGet Package Explorer来选择要包含在包中的多个文件。