WPF ClickOnce安装程序不包含来自nuget包的非托管dll

时间:2019-07-15 22:53:13

标签: c# wpf clickonce nuget-package unmanagedresources

我已经从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安装程序中?

0 个答案:

没有答案