問題タブ [dtf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
318 参照

c# - C#(DTF) で製品コードを使用して MSI をアンインストールする際に直面する問題

既存のインストール シールド Bootstrapper を置き換える CustomBA を作成しています (名前がわかりません)。

インストールシールドが使用するのと同じ数の MSI をインストールしているので、問題ありません。MSI の Visible="no" を作成しているため、ARP のすべての MSI エントリが削除されます。

カスタム BA エントリのみが ARP で利用可能であり、両方とも同じ名前を持っています。

そのため、いくつかの調査の結果、Windows Installer XML (WiX) には、MSI のアンインストールに使用できる Deployment Tools Foundation (DTF) の一部として Microsoft.Deployment.WindowsInstaller 相互運用ライブラリが含まれていることがわかりました。

以下のコードを使用して MSI をアンインストールしています。

私が直面している問題は以下のとおりです

  1. 最初に、CustomBA を管理者として実行して既存の MSI をアンインストールする必要があります。それ以外の場合は、「エラー 1730.You must be an Administrator to remove this application.」というエラーとしてスローされます。管理者なしで CustomBA を実行し、MSI をアンインストールする方法はありますか。

    1. アンインストール中(customBAを管理者として実行するとき)、上記のコードはチェーンパッケージも削除しますが、これは望ましくありません。

    2. アンインストール コードを実行しても、MSI エントリは ARP から削除されません。

これらのリンクを見つけましたが、関連性があるかどうかはわかりません : https://stackoverflow.com/questions/17523974/how-to-uninstall-msi-using-its-product-code-in-c-sharp アンインストールを成功させるために

0 投票する
2 に答える
547 参照

c# - WiX DTF を使用してコンポーネント コードを取得する

製品コードを指定して Windows インストーラ コンポーネント コードを取得する方法を探しています。(実際には、コンポーネント コードを含まないショートカットを使用して、インストールされた製品のコンポーネント パスを取得しようとしていますが、これはより長い話です。)

私は WiX DTF (Microsoft.Deployment.WindowsInstaller) アセンブリに出くわしましたが、これは MSI を実行するための良い方法のようです。次のコードを書いたとき、私は非常に期待していました。

ComponentInfo からコンポーネント コードを取得できることを願っていました。残念ながら、これを行う方法はありません。

WiX DTF クラスを使用してコンポーネント コードを取得することは可能ですか? (または、他の方法でそれに到達する...)

0 投票する
1 に答える
1183 参照

c# - WIX : DTF を使用してプログラムで msi インストーラーにキャビネット ファイルを追加および読み取り、インストーラーの動的なカスタマイズを可能にする

WIX Toolset を使用して MSI インストーラーを作成しました。また、テーマやダイアログなどのユーザー固有のファイルに従って、インストーラーを動的にカスタマイズする必要があります。このリンクを使用してAdd Cabinet File to Installer を追加しまし たが、読めません。キャビネット ファイルとそのファイル (カスタマイズ ファイル) を読むのに最適な場所を知りたいです。これをカスタム アクションで行うべきでしょうか、それともどこで行うのが最適でしょうか? また、このタスクを達成するために従うことができるサンプル コードが必要ですか? 注:- キャビネット ファイルには、多くのファイル (txt ファイル、画像など) が含まれます。

0 投票する
1 に答える
517 参照

c# - WIX カスタム アクション: dllimport を使用

WiX インストーラーとカスタム アクション プロジェクトがあります。カスタムアクションのプロジェクトへの参照として C# ライブラリを追加しました。この C# dll は、1 つの C++ dll に対して DllImport を使用します。インストール時に次のエラーが表示されます: DLL をロードできませんmycpp.dll: 指定されたモジュールが見つかりません。CA プロジェクトに追加mycpp.dllし、プロパティを使用してみました: 埋め込みリソース、出力ディレクトリにコピー - しかし、結果はありません。インストーラーを見つけさせるにはどうすればよいmycpp.dllですか?