ced*_*edd 4 .net c# nuget nuspec .net-standard
我正在从一些代码创建一个 nuget 包,但还需要使用该包部署一些工具。
在 .nuspec 文件中,我可以使用该<files>元素执行此操作,这一切都运行良好。
但是,当使用 .nuspec 文件时,packageReferences不包含 csproj 文件中的 ,并且在手动包含它们(使用元素<dependencies>)时我发现了一些问题。
创建的包似乎也总是恢复为 .net 框架包,即使它的目标是 .net,如这个问题中所示。
我希望如果我转而使用 .csproj 格式来指定 nuget 包详细信息,所有这些问题都会消失,但阅读文档后我无法找到如何做到这一点。
有谁知道它是如何完成的?
如果没有,任何人都可以阐明如何从 .nuspec 文件创建 .net Framework/.net core nuget 包,以恢复到正确的目标版本并尊重包依赖性?
查找/发现并不容易,但 NuGet 的MSBuild 任务文档页面有一个名为“包中包含内容”的部分,它告诉您有关PackagePathMSBuild 项的元数据,NuGet 使用该元数据将文件复制到包中。
所以,在你的 csproj 中,你可以有这样的东西:
<ItemGroup>
<None Include="..\MyTool\Tool.exe" PackagePath="tools" Pack="true" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
然后您的包裹将包含tools\Tool.exe. 该Pack="true"属性是None元素所必需的。
如果更容易的话,您可以使用 MSBuild 的通配符来复制整个目录。Include="..\MyTool\*"。我的 MSBuild 技能不是那么高级,所以我不知道如何 glob ..\MyTool\**\*,这意味着所有子目录中的所有文件,同时在元数据中保持正确的目录布局PackagePath="???"。所以我能建议的最好的办法是每个目录一个 glob。
| 归档时间: |
|
| 查看次数: |
4363 次 |
| 最近记录: |