我已经从netStandard2.0项目构建并发布了一个nuget程序包,其中包含非托管运行时特定的dll。我是通过在我的csproj文件中添加以下ItemGroup来实现的。
<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安装程序的 Application Files 文件夹中缺少非托管dll。
我得到的只是一个警告:MSB3331:无法为项目“ vcruntime140”应用发布属性。 (以vcruntime140.dll为例)
有没有一种方法可以将本机dll放入ClickOnce安装程序中?