gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 22:59:50 25 4
gpt4 key购买 nike

我有一个通过 ClickOnce 发布的 WinForms 应用程序。此应用程序包括 Accord FFMPEG 库,作为引用。

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

Import Project="..\packages\Accord.Video.FFMPEG.3.3.0\build\Accord.Video.FFMPEG.targets" Condition="Exists('..\packages\Accord.Video.FFMPEG.3.3.0\build\Accord.Video.FFMPEG.targets')" 

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

最佳答案

不幸的是,我没有设法使用 .targets 文件来完成这项工作。我最终的解决方案是将所需的 dll 复制到部署文件夹并将它们包含在 list 中,如下所示。

  <ItemGroup Label="FFMPEG DLL">
<ClickOnce Include="..\packages\Accord.Video.FFMPEG.3.3.0\build\*.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。

关于c# - ClickOnce 在发布时包含导入的 .targets (FFMPEG),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45420114/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com