我正在升级我们的一个 WPF 应用程序。在升级过程中,我将应用程序从使用packages.config
NuGet 包的格式转换为使用该PackageReference
格式。
一切似乎在本地运行良好,但我们的构建代理开始抱怨我们的 NuGet 包:
错误 MSB3188:程序集 'C:\Users\tfs\.nuget\packages\Utils\1.0.0\lib\net45\Utils.dll' 必须经过强签名才能标记为先决条件。
这是有道理的,因为不再直接引用 Utils 包。使用该packages.config
格式时,项目会引用每个 NuGet 包,但使用该PackageReference
格式时,只会引用顶级包;不包括包依赖项。此外,任何被引用但具有未由 WPF 项目显式引用的 NuGet 依赖项的项目也会受到影响。
将包依赖项直接添加到 WPF 项目可以解决此问题,但似乎不必这样做。
奇怪的是,当我进入项目的发布设置/应用程序文件时,程序集没有被列为Prerequisite
,而是被标记为Install (Auto)
。
没有添加 NuGet 包依赖项(不仅仅是顶级包),我在这里有什么选择?是否有某种设置或 msbuild 参数等我可以使用,允许我使用 PackageReference 格式,同时仍然只引用顶级包?