我已经从一个包含非托管运行时特定 dll 的 netStandard2.0 项目构建并发布了一个 nuget 包。我通过将以下 ItemGroup 添加到我的 csproj 文件来做到这一点。
<ItemGroup>
<Content Include="x64\**" PackagePath="runtimes\win-x64\native" Visible="true" />
<Content Include="x86\**" PackagePath="runtimes\win-x86\native" Visible="true" />
</ItemGroup>
它为我创建了一个不错的 nuget 包,其中包含所有可能的原生 dll。
然后我在 WPF 应用程序 (net48) 中引用该包,一切都按预期工作。当我为 x64 构建项目时,只有 runtimes\win-x64\native 文件夹中的 dll 被复制到项目构建输出目录中。x86 也一样。这正是我想要的。
但是,当我将应用程序发布为 ClickOnce 时,ClickOnce 安装程序的应用程序文件文件夹中缺少非托管 dll 。
我得到的只是一个警告:MSB3331:无法为项目“vcruntime140”应用发布属性。(以 vcruntime140.dll 为例)
有没有办法让本地 dll 进入 ClickOnce 安装程序?