ClickOnce在发布时包含导入的.targets(FFMPEG)

我有一个WinForms应用程序,我通过ClickOnce发布。 该应用程序包含Accord FFMPEG库,作为参考包含在内。

FFMPEG NuGet包文件夹包含一个.targets文件,其中包含正确运行FFMPEG库(avcodec.dll,avformat.dll,avutil.dll)所需的各种dll文件。 这些文件在构建项目时被复制到 bin文件夹中。 这是通过在.csproj中包含这一行来完成的:

Import Project="..packagesAccord.Video.FFMPEG.3.3.0buildAccord.Video.FFMPEG.targets" Condition="Exists('..packagesAccord.Video.FFMPEG.3.3.0buildAccord.Video.FFMPEG.targets')" 

但是,通过ClickOnce发布应用程序时,这些文件不包含在发布的文件夹中。 有没有办法运行导入项目任务并将文件添加到发布的文件夹中?


不幸的是,我没有设法使用.targets文件来实现这个功能。 我最终的解决方案是将所需的dll复制到部署文件夹,并将它们包含在清单中,如下所示。

  <ItemGroup Label="FFMPEG DLL">
    <ClickOnce Include="..packagesAccord.Video.FFMPEG.3.3.0build*.dll">
      <InProject>false</InProject>
      <Visible>false</Visible>
    </ClickOnce>
  </ItemGroup>

  <Target Name="BeforeBuild">
    <CreateItem Include="@(ClickOnce)" AdditionalMetadata="TargetPath=%(FileName)%(Extension);IsDataFile=false">
      <Output TaskParameter="Include" ItemName="_DeploymentManifestFiles" />
    </CreateItem>
  </Target>

  <Target Name="BeforePublish">
    <Touch Files="@(IntermediateAssembly)" />
  </Target>

这是使用.NET 4.6.1和VS2017。

链接地址: http://www.djcxy.com/p/65995.html

上一篇: ClickOnce include imported .targets when publishing (FFMPEG)

下一篇: adding an existing folder to clickonce deploy