ruarai / CompilePal

A tool to assist in the compiling of source engine maps
GNU General Public License v3.0
225 stars 25 forks source link

System.IO.FileNotFoundException on Startup #175

Closed asd417 closed 1 year ago

asd417 commented 2 years ago

Describe the bug Compilepal immediately crashes on startup.

Steps to reproduce not sure what caused this suddenly because I was using it just 3 minutes ago.

Expected behavior It should just open without crashing.

Debug.log An exception was caught by the ExceptionHandler: System.IO.FileNotFoundException: 'C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\bin\GameConfig.txt' 파일을 찾을 수 없습니다. 파일 이름: 'C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\bin\GameConfig.txt' 위치: System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 위치: System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) 위치: System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) 위치: System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost) 위치: System.IO.StreamReader..ctor(String path, Encoding encoding) 위치: System.IO.File.InternalReadAllLines(String path, Encoding encoding) 위치: System.IO.File.ReadAllLines(String path) 위치: CompilePalX.GameConfigurationParser.Parse(String filename) 파일 C:\Users\10zil\OneDrive\Documents\Projects\C Sharp\CompilePal\CompilePalX\GameConfiguration\GameConfigurationParser.cs:줄 146 위치: CompilePalX.LaunchWindow..ctor() 파일 C:\Users\10zil\OneDrive\Documents\Projects\C Sharp\CompilePal\CompilePalX\GameConfiguration\LaunchWindow.xaml.cs:줄 62 An exception was caught by the ExceptionHandler: System.NullReferenceException: 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. 위치: CompilePalX.ProgressManager.ErrorProgress() 파일 C:\Users\10zil\OneDrive\Documents\Projects\C Sharp\CompilePal\CompilePalX\Compiling\ProgressManager.cs:줄 74 위치: CompilePalX.ExceptionHandler.<LogException>d__0.MoveNext() 파일 C:\Users\10zil\OneDrive\Documents\Projects\C Sharp\CompilePal\CompilePalX\ExceptionHandler.cs:줄 35 --- 예외가 throw된 이전 위치의 스택 추적 끝 --- 위치: System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_0(Object state) 위치: System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) 위치: System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) An exception was caught by the ExceptionHandler: System.NullReferenceException: 개체 참조가 개체의 인스턴스로 설정되지 않았습니다. 위치: CompilePalX.ProgressManager.ErrorProgress() 파일 C:\Users\10zil\OneDrive\Documents\Projects\C Sharp\CompilePal\CompilePalX\Compiling\ProgressManager.cs:줄 74 위치: CompilePalX.ExceptionHandler.<LogException>d__0.MoveNext() 파일 C:\Users\10zil\OneDrive\Documents\Projects\C Sharp\CompilePal\CompilePalX\ExceptionHandler.cs:줄 35 --- 예외가 throw된 이전 위치의 스택 추적 끝 --- 위치: System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_0(Object state) 위치: System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) 위치: System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) 위치: System.Windows.Threading.DispatcherOperation.InvokeImpl() 위치: System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state) 위치: System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 위치: System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 위치: System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 위치: MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state) 위치: System.Windows.Threading.DispatcherOperation.Invoke() 위치: System.Windows.Threading.Dispatcher.ProcessQueue() 위치: System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) 위치: MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) 위치: MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) 위치: System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) 위치: System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) 위치: System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs) 위치: MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam) 위치: MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg) 위치: System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame) 위치: System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame) 위치: System.Windows.Application.RunDispatcher(Object ignore) 위치: System.Windows.Application.RunInternal(Window window) 위치: System.Windows.Application.Run(Window window) 위치: CompilePalX.App.Main()

Crash logs System.IO.FileNotFoundException: 'C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\bin\GameConfig.txt' 파일을 찾을 수 없습니다. 파일 이름: 'C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\bin\GameConfig.txt' 위치: System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 위치: System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) 위치: System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) 위치: System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize, Boolean checkHost) 위치: System.IO.StreamReader..ctor(String path, Encoding encoding) 위치: System.IO.File.InternalReadAllLines(String path, Encoding encoding) 위치: System.IO.File.ReadAllLines(String path) 위치: CompilePalX.GameConfigurationParser.Parse(String filename) 파일 C:\Users\10zil\OneDrive\Documents\Projects\C Sharp\CompilePal\CompilePalX\GameConfiguration\GameConfigurationParser.cs:줄 146 위치: CompilePalX.LaunchWindow..ctor() 파일 C:\Users\10zil\OneDrive\Documents\Projects\C Sharp\CompilePal\CompilePalX\GameConfiguration\LaunchWindow.xaml.cs:줄 62

Additional context This was not a problem 2 mins ago but I was using it and I suddenly got a message System.IO.FileNotFoundException: 'C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\bin\GameConfig.txt' 파일을 찾을 수 없습니다. and crashed. I cant run it after this crash happened. I have csgo installed for h++ but it's weird that compilepal just randomly decided to check this game because I dont use it. I'm on windows 11

Exactol commented 2 years ago

This is a known issue with Hammer++, it does not generate a gameconfig.txt file. Try running normal Hammer and launching Compile Pal

karl-police commented 2 years ago

I have the same issue here.

Fixes though when I run hammer. But annoying is that I would have to run it on every game that I have installed but I am not even trying to use CompilePal with.

Exactol commented 2 years ago

I have the same issue here.

Fixes though when I run hammer. But annoying is that I would have to run it on every game that I have installed but I am not even trying to use CompilePal with.

Are you using Hammer++?

karl-police commented 2 years ago

I have the same issue here. Fixes though when I run hammer. But annoying is that I would have to run it on every game that I have installed but I am not even trying to use CompilePal with.

Are you using Hammer++?

I am using regular Hammer.

Fennecai commented 2 years ago

I cant self fix this by simply running normal hammer; because I only have csgo set up with hammer++ and not it's normal hammer (which I'd have to pay for and sign agreements for and stuff iirc) and I don't even play csgo, I only have it for assets and hammer++ portal 2 compatibility.

I could try copying from another game's hammer though

Exactol commented 2 years ago

@asd417 @karl-police @Fennecai can you try this build? https://www.dropbox.com/s/e5b8l929egwul7l/Compile%20Pal%20027.29.zip?dl=0

Exactol commented 1 year ago

This issue should be fixed in the latest prerelease, forgot to close the issue