WPFアプリをアップデートさせるためにAutoupdater.NET.Officialを使用していますが、更新できない状況になった時の記録です。
環境
Windows11
VSCode
WPF
Autoupdater.NET.Official ver1.9.2
状況
vscodeでデバッグ実行している時は、バージョン情報を上げることで問題なく更新が入ります。
しかしpublish -c Releaseしたもので実行すると、更新が入りませんでした。
確認とエラー
-
AutoUpdater.Synchronous = true;としていましたがこれを外して実行するとエラーが出ました -
Microsoft.Web.WebView2.Core.dllが見つからないようです - AutoUpdaterが更新情報を表示する時に使われているよう
エラーが発生しました
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Web.WebView2.Core, Version=1.0.2592.51, Culture=neutral, PublicKeyToken=2a8ab48044d2601e'. 指定されたファイルが見つかりません。
File name: 'Microsoft.Web.WebView2.Core, Version=1.0.2592.51, Culture=neutral, PublicKeyToken=2a8ab48044d2601e'
at AutoUpdaterDotNET.UpdateForm.InitializeComponent()
at AutoUpdaterDotNET.UpdateForm.InitializeComponent()
at AutoUpdaterDotNET.UpdateForm..ctor(UpdateInfoEventArgs args)
at AutoUpdaterDotNET.AutoUpdater.ShowUpdateForm(UpdateInfoEventArgs args)
at AutoUpdaterDotNET.AutoUpdater.StartUpdate(Object result)
at AutoUpdaterDotNET.AutoUpdater.<>c.<Start>b__48_1(Object _, RunWorkerCompletedEventArgs args)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
- Releaseフォルダに、ファイルは存在するので、プロパティからバージョンを確認すると
ファイルバージョン 1.0.3179.45となっていました
-
Debugフォルダにあるdllは
1.0.2592.51となっていました -
このような事よりDebug実行では問題なくてもReleaseの方ではダメだったようです
ファイル整理で解決
- 他のライブラリが競合しているのか、なぜReleaseだけバージョンが違っていたのかは不明です
- Debug実行では問題ないのでフォルダを整理しました
-
dotnet remove package Autoupdater.NET.Officialでパッケージを一度消す - binフォルダとobjフォルダを削除する
-
dotnet add package Autoupdater.NET.Officialで再度パッケージ追加 dotnet publish -c Release- これで更新が問題なく入るようになりました!
他のライブラリを入れた時に上書きされたのか、なぜこうなったのか分かりませんでした。
issuesにも似たようなことがありました。
この方法で解決できない場合は↓も参考に。
