gpt4 book ai didi

nuget - 打包 csproj 不包含来自 nuspec 的 files 元素

转载 作者:行者123 更新时间:2023-12-02 03:29:50 24 4
gpt4 key购买 nike

我正在使用 nuget pack myproject.csproj打包一个 DLL,但我也想包含一个配置模板。这是相关的 nuspec 文件:

<?xml version="1.0"?>
<package >
<metadata>
<id>$id$</id>
<version>$version$</version>
<title>$title$</title>
<authors>Chris Vann</authors>
<owners>MyCompany</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Log4net appenders for targeting MS Azure</description>
<releaseNotes></releaseNotes>
<copyright>Copyright 2014</copyright>
<tags>log4net logging azure</tags>
</metadata>
<files>
<file src="log4net.config" target="."/>
</files>
</package>

Nuget 正确导入了元数据,但在打包 csproj 文件时似乎完全忽略了 files 元素。有解决办法吗?

最佳答案

在对 NuGet.exe 命令行工具进行一些精细调试之后,我的答案是:

NuGet.exe 使用默认排除列表从包中排除一些通常不需要的文件。
此列表还包含任何以点开头的文件/文件夹。

将 nuspec 中文件的目标设置为“.”使用 pack 命令时将其从包中排除。

解决方案是以下之一:
(a) 省略目标属性(相当于将目标设置为“”)
(b) 使用 -NoDefaultExcludes 选项,例如:pack myproj.csproj -NoDefaultExcludes

这两种解决方案的结果都与您的预期相同 - 名为 log4net.config 的文件将放置在包的顶部文件夹中,紧挨着 .nuspec 文件和 lib 文件夹。
我个人建议您使用选项 (a),因为“.”文件夹除了根文件夹之外没有其他意义。

一点注意:在我看来,您需要将 log4net.config 添加到 DLL 旁边的 lib 文件夹中,而不是添加到包的根文件夹中。

关于nuget - 打包 csproj 不包含来自 nuspec 的 files 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27627875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com