私のアプリケーションには、1 つの Windows フォーム アプリケーションと 2 つの Windows サービスがあります。現在、.net セットアップ プロジェクトを使用して、アプリケーションと Windows サービスをインストールしています。Windowsフォームを開き、SQLサーバーの詳細を受け入れてアプリケーションのSQLデータベースを作成するカスタムアクションを追加しました。
ユーザーがフォームを閉じるか、[キャンセル] ボタンをクリックしてセットアップ ウィザードをキャンセルすると、
InstallExceptionが発生します。
私が直面している問題は、InstallException を使用してセットアップ ウィザードをキャンセルした後、「エラー 1001。ファイル 'C:\Program Files (x86)\MyApp\MyService1.InstallState' が見つかりませんでした」というエラーが表示されることです。私のWindowsサービスの両方に1つずつ。
一時的な解決策として、両方のInstallStateファイルを保持し、両方のInstallStateファイルをインストールディレクトリに追加するセットアッププロジェクトに手動で追加しました。
それは数ヶ月間働きました。しかし、アプリケーションを変更した後、「エラー1001。要素ArrayOfKeyValueOfanyTypeanyType System.Collections.Hashtableのオブジェクトタイプが見つかりません」という他のエラーが発生し始めまし
た。変更のために新しいInstallStateファイルを再度追加する必要があることがわかりました。
これは、InstallState ファイルを手動で追加する適切な方法ではないと思います。この問題を克服するために私のセットアップ プロジェクトに実装する他のアイデアはありますか?
ユーザーがインストール時にインストール ウィザードをキャンセルした場合、SQL データベースの変更 (データベースの作成) をロールバックする必要があり、ユーザーがアンインストール ウィザードをキャンセルした場合、データベースは削除されません。
前もって感謝します。