【问题标题】:nuget pack .csproj with custom .nuspec metadata带有自定义 .nuspec 元数据的 nuget pack .csproj
【发布时间】:2018-11-08 09:24:44
【问题描述】:

我想使用 .csproj 文件打包 nuget 包。将执行以下命令:

nuget pack MyProject.csproj -IncludeReferencedProjects

在项目文件夹中,我有两个 nuspec 文件,一个取决于 MyProject.csproj,另一个将用于制作不同的包,但取决于此项目。文件夹结构如下:

-ProjectFolder
 |-MyProject.csproj
 |-AdditionalMyProject.nuspec
 |-MyProject.nuspec

当调用nuget pack 命令时,它总是使用第一个 nuspec 文件(AdditionalMyProject.nuspec - 较低的命名)来获取 nuget 包的元数据,但正确的 nuspec 应该是 MyProject.nuspec(与项目文件的名称匹配)。

有没有办法告诉 nuget pack 在打包 csproj 时应该使用哪个 nuspec?

类似这样的:

nuget pack MyProject.csproj -nuspec MyProject.nuspec -IncludeReferencedProjectsenter

【问题讨论】:

  • 我不明白 AdditionalMyProject.nuspec 的目的。如果有另一个项目依赖于 MyProject,我不明白为什么您需要为 MyProject 使用特殊的 nuspec。这可能是XY problem 的情况。为什么要两个 nuspec 文件?
  • @Ziv 我想提供两个不同用途的包。 AdditionalMyProject.nuspec 应提供对其他 nuget 包的依赖项,包括 MyProject.nupkg。 MyProject 只是用于特定目的的基础包。
  • 如果 AdditionalMyProject 是一个元包,那么 nuspec 不需要与 csproj 位于同一文件夹中,对吗?将其移动到自己的文件夹中,然后在 csproj 旁边只有 1 个 nuspec。
  • 这是一个有意义的答案。我试过了,它有效,你能把它作为答案发布吗?

标签: c# nuget


【解决方案1】:

AdditionalMyProject.nuspec 是一个不同的项目,即使它没有关联的 MSBuild 项目(毕竟它是一个不同的 .nupkg),所以如果你将 nuspec 保留在它的自己的目录。类似于不同的 csproj 文件存在于不同目录中的方式,即使一个依赖于另一个,我建议将不同的 .nuspec 文件放在不同的目录中,即使 MyProject 是 AdditionalMyProject 的 nuget 依赖项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-13
    • 2013-01-25
    • 2020-10-29
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    相关资源
    最近更新 更多