アンインストーラに参加するためにどのようにソフトウェアパッケージをインストールするためのC#プログラム

VS2019で、アンインストーラパッケージのインストールパッケージを結合する方法、コントロールパネルに、非常に効率的なああ見つけるたびに行く
のソフトウェア更新するたびに、あなたは、アンインストール、コントロールパネルに移動アイコンを見つけ、その後、アンロードします。非常に遅い
それは初心者ですので、そのような追加する場所として少し、詳細に1つのより多くのポイントを、お待ちください、何を追加するには?検索した場合、あなたに感謝

1つのオプションがあり、私は一人で、独自のアンインストールプログラムを書きました。
パッケージの後にあるため。
私は、ドラッグイベントや他のイベントの矛盾に気づく(UACの権限は、この原因。とにかく、今では何の解決策、バグの窓を思わないため。)

私は、アンインストールプログラムを書いて、その後、スタートメニューにアンインストーラへのショートカットを作成し、次のコードは、直接コピーすることができ
  [ComImport]
        [のGUID(「00021401-0000-0000-C000-000000000046」)]
        内部クラスShellLink
        {
        }
        [ComImport]
        [InterfaceTypeは(ComInterfaceType.InterfaceIsIUnknown)]
        [のGUID( "000214F9-0000-0000-C000-000000000046")]
        IShellLinkインターインターフェース内部
        {
            ボイドGETPATH([うち、MarshalAs(UnmanagedType.LPWStr)]のStringBuilder pszFile、int型cchMaxPathは、 PFDのIntPtr OUT、FFLAGS int型);
            無効GetIDList(のIntPtr ppidl OUT);
            無効SetIDList(のIntPtr PIDL)。
            ボイドのgetDescription([うち、MarshalAs(UnmanagedType.LPWStr)]のStringBuilder pszName、INT cchMaxName)。
            ボイドのsetDescription([MarshalAs(UnmanagedType.LPWStr)]列pszName)。
            ボイドGetWorkingDirectory([うち、MarshalAs(UnmanagedType.LPWStr)]のStringBuilder pszDir、INT cchMaxPath)。
            ボイドSetWorkingDirectory([MarshalAs(UnmanagedType.LPWStr)]列pszDir)。
            ボイドGetArguments([うち、MarshalAs(UnmanagedType.LPWStr)]のStringBuilder pszArgs、INT cchMaxPath)。
            ボイドSetArguments([MarshalAs(UnmanagedType.LPWStr)]列pszArgs)。
            (短いpwHotkeyアウト)、ボイドGetHotkey。
            空SetHotkey(ショートwHotkey)。
            (int型piShowCmdアウト)、ボイドGetShowCmd。
            無効SetShowCmd(int型iShowCmd)。
            空GetIconLocation([アウト、MarshalAs(UnmanagedType.LPWStr)]のStringBuilder pszIconPath、int型cchIconPath、int型のpiIconアウト)。
            空SetIconLocation([MarshalAs(UnmanagedType.LPWStr)]列pszIconPath、INT iIcon)。
            空SetRelativePath([MarshalAs(UnmanagedType.LPWStr)]列pszPathRel、int型dwReserved);
            空解決(のIntPtr hwndは、int型FFLAGS)。
            ボイドSETPATH([MarshalAs(UnmanagedType.LPWStr)]列pszFile)。
        }

 プライベートボイドCreatShortcut()
{
          IShellLinkインターリンク=(IShellLinkインター)新しいShellLink()。
            link.SetDescription( "程序描述");
            link.SetPath(卸载程序路径)。//指定文件路径

            IPersistFileファイル=(IPersistFile)リンク。
           ストリングdesktopPath = Environment.GetFolderPath(Environment.SpecialFolder.StartMenu)。
            ストリングSFILE = Path.Combine(desktopPath、 "卸载XXXXX程序.LNK")。
            IF(File.Exists(SFILE))
                File.Delete(SFILE)。
            file.Save(SFILE、偽);
}

私は自分のコンピュータ上のファイルのウィンドウを追加する前にポストによると、アンインストールが、他にパッケージ化することができるビーフォーラムは、マシンと語り合う場です。他の人はアンインストールすることはできません後

私はあなたに答えることができる質問は、msiexec.exeのは、インストールディレクトリにsystme32の下に作るコピーし、他の人は大丈夫に何かを置く与えます。

公開された26元の記事 ウォンの賞賛0 ビュー1029

おすすめ

転載: blog.csdn.net/netyou/article/details/104291946