diff --git a/installer/ClipCMD-Installer.exe b/installer/ClipCMD-Installer.exe new file mode 100644 index 0000000..1e8a2ca Binary files /dev/null and b/installer/ClipCMD-Installer.exe differ diff --git a/installer/Installer.iss b/installer/Installer.iss new file mode 100644 index 0000000..9ab1fc8 --- /dev/null +++ b/installer/Installer.iss @@ -0,0 +1,51 @@ +; Script generated by the Inno Setup Script Wizard. +; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! + +#expr Exec('cmd.exe /C', 'dotnet build -o "' + SourcePath + '\publish" -c Release ' + SourcePath + '..\src\ClipCMD\') + +#define MyAppName "ClipCMD" +#define MyAppVersion GetVersionNumbersString("/publish/ClipCMD.exe") +#define MyAppPublisher "Stone_Red" +#define MyAppExeName "ClipCMD.exe" + +[Setup] +; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications. +; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) +AppId=68d780d4-b946-4154-8815-e4632e5ec5d8 +AppName={#MyAppName} +AppVersion={#MyAppVersion} +;AppVerName={#MyAppName} {#MyAppVersion} +AppPublisher={#MyAppPublisher} +DefaultDirName={autopf}\{#MyAppName} +DisableProgramGroupPage=yes +; The [Icons] "quicklaunchicon" entry uses {userappdata} but its [Tasks] entry has a proper IsAdminInstallMode Check. +UsedUserAreasWarning=no +; Remove the following line to run in administrative install mode (install for all users.) +PrivilegesRequired=lowest +PrivilegesRequiredOverridesAllowed=dialog +OutputBaseFilename={#MyAppName}-Installer +OutputDir=. +Compression=lzma +SolidCompression=yes +WizardStyle=modern + +[Languages] +Name: "english"; MessagesFile: "compiler:Default.isl" +Name: "german"; MessagesFile: "compiler:Languages\German.isl" + +[Tasks] +Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked +Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 6.1; Check: not IsAdminInstallMode + +[Files] +Source: "publish\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs +; NOTE: Don't use "Flags: ignoreversion" on any shared system files + +[Icons] +Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" +Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon +Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon + +[Run] +Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent + diff --git a/src/ClipCMD/App.xaml.cs b/src/ClipCMD/App.xaml.cs index fb029cd..9ec893d 100644 --- a/src/ClipCMD/App.xaml.cs +++ b/src/ClipCMD/App.xaml.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using System.Threading; using System.Windows; @@ -26,6 +27,8 @@ public partial class App : Application Current.Shutdown(); } + AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; + Exit += CloseHandler; } @@ -33,4 +36,9 @@ public partial class App : Application { mutex?.ReleaseMutex(); } + + private void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) + { + File.WriteAllText("error.log", e.ExceptionObject.ToString()); + } } \ No newline at end of file