【发布时间】:2020-10-01 17:16:00
【问题描述】:
我正在使用 Visual Studio 2019 并使用此方法成功创建 NuGet 包:
一切顺利,但在PageSettings/ 目录中包含一些设置 (.json) 文件
当我发布我的 NuGet 包并将其安装到新项目中时,此目录在 VS 中显示为 linked item(见图)。因此,作为用户,我可以访问这些文件,但在项目运行时它们并不“存在”。
这意味着,如果我在没有物理复制和添加这些文件的情况下运行这个项目,我会得到ArgumentException: The directory name 'Path-To-project\pagesettings' does not exist. (Parameter 'Path')
我知道为什么会发生这种情况,但不知道如何改变它,或者是否可能。
上面链接的文章建议将代码添加到csproj 文件中,例如:
<ItemGroup>
<Content Include="readme.txt">
<Pack>true</Pack>
<PackagePath>\</PackagePath>
</Content>
</ItemGroup>
但这不起作用,实际上似乎没有必要,因为打包命令是包括我的文件,只是在安装时没有正确创建它们。
另外 - 如果有办法告诉 VS 提示是否安装此文件,那将非常方便。因为它是设置,如果用户更改设置然后安装我的 NuGet 包的更新版本,我不希望它覆盖他们的自定义设置......也许这就是链接设计发生的原因......如果是这样,如果有人可以确认吗?
【问题讨论】:
-
您的
csproj文件看起来如何?您可能应该指定PackagePath属性,以及使用IncludeInPackage="true" -
您也可以编写自己的 msbuild
.props或.targets文件以正确地将所需文件添加到安装包的项目中 -
嗨,杰米,关于这个问题的任何更新?请检查我的回答是否对您处理问题有帮助,如果有帮助,请不要忘记接受它。如果没有,请随时告诉我们:)
-
对不起 - 还没有机会尝试这个。我会尝试到今天下午!
标签: c# visual-studio nuget nuget-package