Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

アプリケーションが起動しません #20

Closed
whistyun opened this issue Nov 8, 2021 · 2 comments
Closed

アプリケーションが起動しません #20

whistyun opened this issue Nov 8, 2021 · 2 comments
Labels
bug Something isn't working

Comments

@whistyun
Copy link

whistyun commented Nov 8, 2021

事象

exeを実行してもアプリが起動しません。

動作環境

Windows 10 21H1 64bit

下記2バージョンで確認

ver zip
v4.8.3 boilersGraphics_180.zip
unstable-20211107.2 boilersGraphics_183.zip

Windowsログ

アプリケーション:boilersGraphics.exe
フレームワークのバージョン:v4.0.30319
説明: ハンドルされない例外のため、プロセスが中止されました。
例外情報:System.Data.SQLite.SQLiteException
   場所 System.Data.SQLite.SQLite3.Open(System.String, System.String, System.Data.SQLite.SQLiteConnectionFlags, System.Data.SQLite.SQLiteOpenFlagsEnum, Int32, Boolean)
   場所 System.Data.SQLite.SQLiteConnection.Open()
   場所 Homura.ORM.Connection.OpenConnection()
   場所 Homura.ORM.Setup.DbInfoRetriever.GetTableNames(Homura.ORM.IConnection)
   場所 Homura.ORM.Setup.VersioningStrategyByTick.UpgradeToTargetVersion(Homura.ORM.IConnection)
   場所 Homura.ORM.Setup.DataVersionManager.UpgradeToTargetVersion()
   場所 boilersGraphics.ViewModels.MainWindowViewModel..ctor(Prism.Services.Dialogs.IDialogService)

例外情報:System.Reflection.TargetInvocationException
   場所 System.RuntimeMethodHandle.InvokeMethod(System.Object, System.Object[], System.Signature, Boolean)
   場所 System.Reflection.RuntimeConstructorInfo.Invoke(System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)
   場所 Unity.Processors.ConstructorProcessor+<>c__DisplayClass16_0.<GetResolverDelegate>b__0(Unity.Builder.BuilderContext ByRef)
   場所 Unity.Processors.MemberProcessor`2+<>c__DisplayClass8_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResolver>b__0(Unity.Builder.BuilderContext ByRef)
   場所 Unity.Processors.MemberProcessor`2+<>c__DisplayClass8_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResolver>b__0(Unity.Builder.BuilderContext ByRef)
   場所 Unity.Processors.MemberProcessor`2+<>c__DisplayClass8_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResolver>b__0(Unity.Builder.BuilderContext ByRef)
   場所 Unity.Strategies.BuildPlanStrategy.PreBuildUp(Unity.Builder.BuilderContext ByRef)
   場所 Unity.UnityContainer+<>c.<.ctor>b__73_1(Unity.Builder.BuilderContext ByRef)

例外情報:Unity.ResolutionFailedException
   場所 Unity.UnityContainer+<>c.<.ctor>b__73_1(Unity.Builder.BuilderContext ByRef)
   場所 Unity.UnityContainer.Unity.IUnityContainer.Resolve(System.Type, System.String, Unity.Resolution.ResolverOverride[])
   場所 Prism.Unity.UnityContainerExtension.Resolve(System.Type, System.ValueTuple`2<System.Type,System.Object>[])

例外情報:Prism.Ioc.ContainerResolutionException
   場所 Prism.Unity.UnityContainerExtension.Resolve(System.Type, System.ValueTuple`2<System.Type,System.Object>[])
   場所 Prism.Mvvm.ViewModelLocationProvider.AutoWireViewModelChanged(System.Object, System.Action`2<System.Object,System.Object>)
   場所 Prism.Mvvm.ViewModelLocator.AutoWireViewModelChanged(System.Windows.DependencyObject, System.Windows.DependencyPropertyChangedEventArgs)
   場所 System.Windows.DependencyObject.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs)
   場所 System.Windows.FrameworkElement.OnPropertyChanged(System.Windows.DependencyPropertyChangedEventArgs)
   場所 System.Windows.DependencyObject.NotifyPropertyChange(System.Windows.DependencyPropertyChangedEventArgs)
   場所 System.Windows.DependencyObject.UpdateEffectiveValue(System.Windows.EntryIndex, System.Windows.DependencyProperty, System.Windows.PropertyMetadata, System.Windows.EffectiveValueEntry, System.Windows.EffectiveValueEntry ByRef, Boolean, Boolean, System.Windows.OperationType)
   場所 System.Windows.DependencyObject.SetValueCommon(System.Windows.DependencyProperty, System.Object, System.Windows.PropertyMetadata, Boolean, Boolean, System.Windows.OperationType, Boolean)
   場所 System.Windows.Baml2006.WpfMemberInvoker.SetValue(System.Object, System.Object)
   場所 MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(System.Object, System.Xaml.XamlMember, System.Object)

例外情報:System.Windows.Markup.XamlParseException
   場所 System.Windows.Markup.XamlReader.RewrapException(System.Exception, System.Xaml.IXamlLineInfo, System.Uri)
   場所 System.Windows.Markup.WpfXamlLoader.Load(System.Xaml.XamlReader, System.Xaml.IXamlObjectWriterFactory, Boolean, System.Object, System.Xaml.XamlObjectWriterSettings, System.Uri)
   場所 System.Windows.Markup.WpfXamlLoader.LoadBaml(System.Xaml.XamlReader, Boolean, System.Object, System.Xaml.Permissions.XamlAccessLevel, System.Uri)
   場所 System.Windows.Markup.XamlReader.LoadBaml(System.IO.Stream, System.Windows.Markup.ParserContext, System.Object, Boolean)

例外情報:System.Reflection.TargetInvocationException
   場所 System.RuntimeMethodHandle.InvokeMethod(System.Object, System.Object[], System.Signature, Boolean)
   場所 System.Reflection.RuntimeConstructorInfo.Invoke(System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)
   場所 Unity.Processors.ConstructorProcessor+<>c__DisplayClass16_0.<GetResolverDelegate>b__0(Unity.Builder.BuilderContext ByRef)
   場所 Unity.Processors.MemberProcessor`2+<>c__DisplayClass8_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResolver>b__0(Unity.Builder.BuilderContext ByRef)
   場所 Unity.Processors.MemberProcessor`2+<>c__DisplayClass8_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResolver>b__0(Unity.Builder.BuilderContext ByRef)
   場所 Unity.Processors.MemberProcessor`2+<>c__DisplayClass8_0[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].<GetResolver>b__0(Unity.Builder.BuilderContext ByRef)
   場所 Unity.Strategies.BuildPlanStrategy.PreBuildUp(Unity.Builder.BuilderContext ByRef)
   場所 Unity.UnityContainer+<>c.<.ctor>b__73_1(Unity.Builder.BuilderContext ByRef)

例外情報:Unity.ResolutionFailedException
   場所 Unity.UnityContainer+<>c.<.ctor>b__73_1(Unity.Builder.BuilderContext ByRef)
   場所 Unity.UnityContainer.Unity.IUnityContainer.Resolve(System.Type, System.String, Unity.Resolution.ResolverOverride[])
   場所 Prism.Unity.UnityContainerExtension.Resolve(System.Type, System.ValueTuple`2<System.Type,System.Object>[])

例外情報:Prism.Ioc.ContainerResolutionException
   場所 Prism.Unity.UnityContainerExtension.Resolve(System.Type, System.ValueTuple`2<System.Type,System.Object>[])
   場所 Prism.Ioc.IContainerProviderExtensions.Resolve[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]](Prism.Ioc.IContainerProvider)
   場所 Prism.PrismApplicationBase.Initialize()
   場所 Prism.PrismApplicationBase.InitializeInternal()
   場所 boilersGraphics.App.OnStartup(System.Windows.StartupEventArgs)
   場所 System.Windows.Application.<.ctor>b__1_0(System.Object)
   場所 System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   場所 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   場所 System.Windows.Threading.DispatcherOperation.InvokeImpl()
   場所 MS.Internal.CulturePreservingExecutionContext.CallbackWrapper(System.Object)
   場所 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   場所 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   場所 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   場所 MS.Internal.CulturePreservingExecutionContext.Run(MS.Internal.CulturePreservingExecutionContext, System.Threading.ContextCallback, System.Object)
   場所 System.Windows.Threading.DispatcherOperation.Invoke()
   場所 System.Windows.Threading.Dispatcher.ProcessQueue()
   場所 System.Windows.Threading.Dispatcher.WndProcHook(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   場所 MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef)
   場所 MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object)
   場所 System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32)
   場所 System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate)
   場所 System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32)
   場所 MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr)
   場所 MS.Win32.UnsafeNativeMethods.DispatchMessage(System.Windows.Interop.MSG ByRef)
   場所 System.Windows.Threading.Dispatcher.PushFrameImpl(System.Windows.Threading.DispatcherFrame)
   場所 System.Windows.Application.RunDispatcher(System.Object)
   場所 System.Windows.Application.RunInternal(System.Windows.Window)
   場所 boilersGraphics.App.Main()

私見

MainWindowViewModel(49)にて、%Appdata%\dhq_boiler\boilersGraphicsフォルダをdbファイルの置き場所としていますが、新規実行の環境では、該当のフォルダが存在しないためファイル作成に失敗しているように見えます。

フォルダを作成するとアプリケーションは起動します。よって、フォルダ作成処理の追加を提案します。

// using System.IO;

var dbDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), @"dhq_boiler\boilersGraphics");
var dbFilePath = Path.Combine(dbDirectory, "bg.db");

Directory.CreateDirectory(dbDirectory);
ConnectionManager.SetDefaultConnection($"DataSource={dbFilePath}", typeof(SQLiteConnection));
@dhq-boiler
Copy link
Owner

こちらでもバグの存在を確認できました。
ご指摘の通り、%appdata%\dhq_boiler\boilersGraphicsのフォルダ内にデータベースファイルをbg.db作成するようにしていましたが、ディレクトリの作成を失念しておりました。
ありがとうございます!

unstableビルドですが当バグを修正しましたので、ご確認いただけますでしょうか?
https://github.com/dhq-boiler/boiler-s-Graphics/releases/tag/unstable-20211108.1
よろしくお願いいたします。

@dhq-boiler dhq-boiler added the bug Something isn't working label Nov 8, 2021
@whistyun
Copy link
Author

whistyun commented Nov 8, 2021

無事起動しました。

@whistyun whistyun closed this as completed Nov 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants