アプリケーションと一緒に gstreamer winbuilds をデプロイしています。主な問題は、gstreamer winbuilds のインストールが壊れていることです。Python バインディングが機能せず、迷惑なポップアップで gstreamer を初期化するたびに文句を言います。そのため、問題を解決するには、lib フォルダーから「libgstpython-v2.6.dll」を削除するだけでよいことがわかりました。ただし、NSIS はファイルを削除しません。注意してください、私はパスが正しいと確信しています。
コードは次のとおりです。
ReadRegStr $0 HKLM 'SOFTWARE\OSSBUILD\GStreamer' InstallDir
ReadRegStr $3 HKLM 'SOFTWARE\Wow6432Node\OSSBUILD\Gstreamer' InstallDir
${If} $0 == ''
${AndIf} $3 == ''
DetailPrint 'The HHPVideoServer plugin depends on Gstreamer, we will need to install the core Gstreamer Components.'
DetailPrint 'Installing Gstreamer.'
ExecWait '"msiexec" /i "$INSTDIR\GStreamer-WinBuilds-GPL-x86-Beta04-0.10.7.msi" /q /norestart' $1
DetailPrint 'Finished installing Gstreamer with error code $1'
ReadRegStr $0 HKLM 'SOFTWARE\OSSBUILD\GStreamer' InstallDir
ReadRegStr $3 HKLM 'SOFTWARE\Wow6432Node\OSSBUILD\Gstreamer' InstallDir
${If} $0 != ''
DetailPrint 'Gstreamer Plugins installed to $0'
DetailPrint 'Deleting $0lib\gstreamer-0.10\libgstpython-v2.6.dll'
DELETE '$0lib\gstreamer-0.10\libgstpython-v2.6.dll''
${ElseIF} $3 != ''
DetailPrint 'Gstreamer Plugins installed to $3'
DetailPrint 'Deleting $3lib\gstreamer-0.10\libgstpython-v2.6.dll'
DELETE '$3lib\gstreamer-0.10\libgstpython-v2.6.dll'
${EndIf}
${Else}
DetailPrint 'Gstreamer already installed.'
${EndIf}
削除呼び出しは機能しません。ファイルを手動で削除すると、gstreamer のエラー メッセージが修正されます。また、インストーラーは管理者権限で実行されています。