2017-07-13 2 views
-1

WPFアプリケーションを作成してセットアップを作成し、システムに手動でインストールしました。今度は、このアプリケーションをC#プログラムでアンインストールします。このようにして、このアプリケーションの新しいバージョンをインストールしたいと思います。どのように?ありがとう。 自分自身のwpfアプリケーションをアンインストールする方法

+0

あなたは、もう少し具体的にしてみていただけますか?現在の問題は非常に曖昧であり、あらゆる種類の有益な情報/不必要な回答を不必要に提供することになります。これ以上の情報がなければ、私は単に新しいファイルをコピーし、既存の/古いファイルを置き換えることを提案するでしょう... – bassfader

+0

C#コードを使用して(demo.exe)のようなソフトウェア名でプログラムをアンインストールします。ボット?または他の方法で。 – user4667380

+0

インストーラとして独自のvdprojを作成しましたか?その場合は、インストールコマンドでスクリプトまたはexeを実行して、意図したとおりに達成する方法があります。 – praty

答えて

0

これは、あなたが何を達成するために行くことを提案する方法です!注:説明する方法は、通常のビジュアルスタジオインストーラプロジェクトで行うことができます。インストールシールドの場合、ステップは異なるように見えるかもしれませんが、同じ戦略に従います。

  1. File System on Target machine - >、Special Folderを追加するファイルを追加し、このシステムフォルダにSystem Folder
  2. を選択します。ローカルSystem32フォルダからmsiexec.exeを参照して追加します。
  3. オーバーライドデフォルトプロパティ:条件= Not Installed、パーマネント= True、システム= True、推移=バイタルTrue = False
  4. 手順1で作成したSystem Folderに新しいApplication Folder下のショートカット、設定された目標を作成します。そしてそれがmsiexec.exeにあることを指摘してください。
  5. ショートカットの名前を「アプリケーションのアンインストール」に変更します。 /x [ProductCode]に引数プロパティを設定し
  6. x[の間にスペースがある)
  7. あなたがこれらの手順で行われた後、プロジェクトに

を構築し、あなたのアプリケーションのための独自のアンインストーラーを作成しているだろう。これで、初めてアプリケーションをインストールすると、アンインストーラのexeがインストールフォルダに自動的に貼り付けられます。次回のインストールでは、新しいバージョンをインストールする前にインストーラがこのアンインストーラを見つけて実行する必要があります。このために、vbスクリプトバッチファイルを作成して、アンインストーラーexeを呼び出して実行することができます。あなたのアプリケーションでuninstaller.vbsとして

Dim WSHShell 
Dim oFSO 
Dim EXEPath 

Set WSHShell = CreateObject("WScript.Shell") 
Set oFSO = CreateObject("Scripting.FileSystemObject") 

If Not WSHShell Is Nothing Then 
    EXEPath = "C:\Program Files (x86)\Your Application Location\Uninstall Your Application.exe" 

    If oFSO.FileExists(EXEPath) Then 
     WSHShell.Run(EXEPath) 
    End If 
End If 

店このスクリプトとあなたのApplication Folderでこのファイルを添付します。さて、あなたの顧客のインストールアクションでは、インストールを実行する前にこのスクリプトを実行する必要があります。

こちらがお役に立てば幸いです。

+0

これらの手順で使用できるビデオ/デモ。実際には1〜6ステップは非常に難しいです。だから私を助けてください。 – user4667380

+0

@ user4667380私の知識の中には何もありません!しかし、私は私のプロジェクトで同様のことに取り組んできました。普通のインストーラプロジェクトである私にあなたを見せることができます – praty

+0

ありがとう、私は準備ができています。 – user4667380

0

ビルドしてインストールしたセットアップをインストールするだけで、MSIファイルを生成したVisual Studioセットアッププロジェクトなどの場合、セットアップのProductCodeを知る必要があります。

(C#では)MsiConfigureProductにP/Invokeし、ProductCode、INSTALLLEVEL_DEFAULT、INSTALLSTATE_ABSENTを渡します。

それ以外のコマンドラインオプションを使用している場合は、msiexec/x {productcode}コマンドを使用できます。

問題は、プログラムがまだ実行されている製品をアンインストールしようとしているため、デッドロックが発生することがあります。

あなたはこれがあるとのWiXを使用していた場合:

http://wixtoolset.org/documentation/manual/v3/howtos/files_and_registry/create_uninstall_shortcut.html

関連する問題