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)