【问题标题】:gstreamer-sharp C# application deploymentgstreamer-sharp C# 应用程序部署
【发布时间】:2017-05-19 19:11:36
【问题描述】:

谁能告诉我部署使用 gstreamer-sharp 的 C# WinForms 应用程序的正确方法?我可以让它工作的唯一方法是将 gstreamer bin 目录设置为我的应用程序的工作目录。

我已经看到一些示例尝试将应用程序的路径临时设置为各种 gstreamer 目录,但这对我仍然不起作用,并且我收到了缺少 DLL 的错误。

Environment.GetEnvironmentVariable("PATH") + ";C:\\gstreamer\\1.0\\x86\\bin\\");
        Environment.SetEnvironmentVariable("PATH", 
Environment.GetEnvironmentVariable("PATH") + ";C:\\gstreamer\\1.0\\");
        Environment.SetEnvironmentVariable("PATH", 
Environment.GetEnvironmentVariable("PATH") + ";C:\\gstreamer\\1.0\\x86\\lib\\");
        Environment.SetEnvironmentVariable("PATH", 
Environment.GetEnvironmentVariable("PATH") + ";C:\\gstreamer\\1.0\\x86\\");

我是否应该将所有 gstreamer DLL 部署到我的应用程序的 bin driectory 中?我希望他们运行安装程序,然后我的应用程序可以引用它。

对此的任何帮助将不胜感激。

【问题讨论】:

标签: winforms deployment gstreamer gstreamer-sharp


【解决方案1】:

只添加 bin 目录就足够了。您可以查看https://github.com/Vocaluxe/Vocaluxe/blob/develop/Vocaluxe/Lib/Sound/Playback/GstreamerSharp/CGstreamerSharpAudio.cs 以了解 Vocaluxe 中的初始化是如何完成的。

【讨论】:

  • 我认为只将 gstreamer bin 添加到路径中是可行的,但在这里我仍然将它设置为 Visual Studio 中的工作目录。如果我将其取出并手动添加到 PATH 或临时添加到代码中(如您所建议的),我会收到以下“未找到入口点”Windows 弹出窗口,“程序入口点 g_socket_send_messages 无法位于动态链接库 libgio-2.0-0.dll 中。” 在执行 Parse.Launch(strPipelineDesc) 方法时。
  • 你能从bin目录成功运行gst-launch吗?
  • 是的,我可以从 bin dir 成功执行 gst-launch
【解决方案2】:

我能想到的最简单的解决方案可能是手动将 gstreamer bin 目录放入系统的 PATH 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多