假设我有一个包含packages.config文件的项目。现在,当我在与属于项目的packages.config相同的文件夹中运行nuget pack myproj.csproj
时,我希望nuget包含依赖项,但事实并非如此。有可能以某种方式使它成为现实吗?或者我是否必须创建一个nuspec文件才能使依赖项工作?
答案 0 :(得分:3)
据我所知,最新版本的NuGet vsix支持这种开箱即用的功能。 如果启用包还原(以获取.nuget文件夹和msbuild脚本等),则可以将以下MSBuild属性添加到项目文件中(编辑csproj文件):
<BuildPackage>true</BuildPackage>
现在,无论何时构建项目,都会在项目$(OutDir)中创建.nupkg文件,无论您是否有项目的.nuspec文件。它将包含它在项目的packages.config文件中找到的所有依赖项。
但是,如果你的项目文件夹中有一个名为{projectname} .nuspec的.nuspec文件(将{projectname}替换为项目文件名减去其扩展名),你将能够添加其他元数据和内容。不能仅通过查看您的项目自动导出。可以找到有关创建此类文件的信息here。
答案 1 :(得分:1)
这是你的追求吗? https://stackoverflow.com/a/16310138/3285954
IncludeReferencedProjects
https://docs.nuget.org/consume/command-line-reference#pack-command-options
答案 2 :(得分:0)
将此引用CreateNewNuGetPackageFromProjectAfterEachBuild添加到您的项目中,构建您的项目,您将在bin文件夹下获得项目的nuget包。
https://www.nuget.org/packages/CreateNewNuGetPackageFromProjectAfterEachBuild/
无需担心生成nuspec并打包所有必需的依赖项。它负责那些