問題タブ [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.
wix - WiX の DTF カスタム アクション参照は有効な WiX 参照ではありません
DTF ツール (IE MakeSfxCA.exe) を使用してマネージド カスタム アクションをビルドできます。ビルド
後のイベント コマンド ラインは次のようになります。
"%WIX%SDK\MakeSfxCA.exe"
"$(TargetDir)$(TargetName).CA.dll"
"%WIX%SDK\x86\SfxCA.dll"
"$(TargetDir)$(TargetName).dll"
"$(TargetDir)Microsoft.Deployment.WindowsInstaller.dll"
しかし、コンパイルされた dll への参照を追加しようとするたびに、何かの影響を示すエラーが表示されます。
Visual Studio (2010 & 2008) を使用してプロジェクトを参照として追加すると、WiX プロジェクトはコンパイルされますが、dll は使用されません。msi を実行しようとすると、このメッセージが表示されます
私のwxsファイルは次のようになります
私のOSはWindows 7で、.net 4.0を使用していますが、それが違いを生み、ウィークリービルドを使用しています
wix - DTFを使用したWiXカスタムアクション...かなり混乱しています
さて、私はWiXでやりたいことを実行できる唯一の方法を決定しました(私が今アップグレードしなければならないことを書いていなかった古いインストーラーのおかげで)いくつかのカスタムアクションを使用することです。
基本的に、RemoveExistingProductsの前にファイルをバックアップし、RemoveExistingProductsの後にそのファイルを再度復元する必要があります。これがいわゆる「タイプ2カスタムアクション」だと思います。
私が理解していると思う順序付けですが、私が理解していないのは、まず、データをC#アクション(ファイルがWiXからあるディレクトリ)に渡す方法と、C#(DTF?)アクションを参照する方法です。 BinaryタグとCustomActionタグ。
また、これらすべてをタグに含める必要がありますか?すべての例はそれをそのように示しています。
これが私がこれまでに.WXSファイルに持っているものです...
バックアップする必要のあるファイルは、前回のインストールの設定ファイル(そのままにしておく必要があります)で、次のディレクトリにあります。
また、Componentタグもありますが、すでに存在するファイルをバックアップする必要があります。
そして、これはVisual Studio(2005)が私のために作成したC#ファイルを参照しています。
どんな助けでも大いに感謝します。ありがとうございました!
installation - MSIプログラミングAPIを使用してMSIテーブルを更新する
MSIファイルの属性列を更新する必要があります。残念ながら、ドキュメントが見つかりません(特に、C ++の場合)。
これが私がやろうとしていることのコードスニペットです:
record-> Modified(...)で述べたように、次のように_com_errorをスローします。IDispatchエラー#1000?どういう意味ですか。これらのエラーコードはどこで検索できますか?これらはHRESULTではありません...
しかし、もっと重要な質問は、レコードを適切に更新するにはどうすればよいですか?選択したすべてのレコードを反復処理するにはどうすればよいですか?新しいフェッチを実行し、レコードをNULLと比較すると、無限ループが発生します。
助けてくれてありがとう、
Ovanes
c# - WIX c# CustomAction、何が間違っていますか?
VS2010 と WIX 3.5 を使用しています。
1) WIX セットアップ プロジェクトを作成しました。
2) 次に、ソリューション C# カスタム アクション プロジェクトに追加し、「CustomActions」と呼びました。
3) 次に、CustomActions プロジェクトをコンパイルし、セットアップ プロジェクトから参照を追加しました。
4) そして最後に .wxs ファイルに入れます:
それはうまくいきません。私は何を間違っていますか?私を助けてください。
sql-server - 分散トランザクションは、Windows インストーラ カスタム アクションでデータベース アップグレードのロールバックを有効にするのに適していますか?
私は WiX で利用できる Sql Server カスタム アクションを使いこなせなくなったので、Deployment Tools Foundation を使用して独自のアクションを作成するという大胆な一歩を踏み出しました。私は良き市民になりたいと思っています。しかし、それを行う最良の方法は何ですか?
SQL Server 2005 以降のすべてのエディションをサポートする必要があります。
問題は、Windows Installer が 2 つのフェーズで動作することです。作業を実行し、元に戻す情報を保存します。次に、すべてのピースが配置されると、コミット (元に戻す情報を削除) するか、ロールバックを実行します。
これは、標準的なトランザクションが機能しないことを意味します。それらは私の Execute カスタム アクション内で完了する必要があり、後でロールバックする機会がありません。
必要に応じてロールバック アクションで復元できるデータベースのコピーのみのバックアップを作成することを検討しましたが、単純な方法には欠点があると思います。たとえば、データベースがどのくらい大きくなるかはわかりません。そのため、ターゲット マシンにバックアップを保持するための空き容量があるかどうかは保証できません。また、バックアップと復元が完了するまでに時間がかかる場合があり、通常のインストール (ロールバックが発生しない場合) が不必要に遅くなることは望ましくありません。
つまり、分散トランザクション コーディネーターが起動していることを確認し、変更を行う前に分散トランザクションを初期化し、適切なカスタム アクションでコミットまたはロールバックします。
TransactionInteropクラスのメンバーを使用して、異なるカスタム アクション間でトランザクションを共有できるようにする Cookie をエクスポートできるようです。
この種の経験を持つ人は、それがうまくいく可能性があるかどうかを言うことができますか?
c# - WiX 3.5.2030.0 CreateDatabase が DTF 外部 UI ハンドラーで 1603 で失敗し、外部 UI ハンドラーなしで動作する
SQL データベースを作成するために提供されたカスタム アクションを使用する Windows 7 (msiexec.exe のプロパティによると Windows インストーラー 5.0.7600.16385) に単純な WiX (3.5.2030.0) インストーラーがあります。MSI を単独で実行するか、C# セットアップ ブートストラップ (相互運用に DTF を使用) のトランザクションで実行すると、正しく動作します。
ブートストラッパーで MSI を実行し、外部 UI ハンドラーにフックすると (動作中のコードからの唯一の変更は、次のような呼び出しです。
)、ただし、CreateDatabase 呼び出しは失敗します。SQL ログに関連するものは何もありません。データベースが起動中であることを示しています。SQL プロファイラーには関連するものは何もありません。CA がデータベースの存在をチェックし、作成後のドロップ試行が失敗したことを示しています。以下は、デバッグ詳細ログが示す内容です。
ログには有用な SQL エラー コードが表示されないことに注意してください。(常に役に立たない) 1603 エラー (翻訳: 何かが壊れた) だけです。
外部 UI ハンドラーのフックは、データベース作成の実行とどのような関係がありますか?
「return MessageResult.None」で短絡するとすべてが機能するため、問題が外部 UI ハンドラー コードに関連していることはわかっています。
私の最上位のハンドラ コードは以下のとおりです。http://msdn.microsoft.com/en-us/library/aa368786(VS.85).aspxに基づいています:
完全な UI はまだ実装されておらず、現時点では進行部分のみが実装されているため、内部 UI がまだ起動するように "None" を返しています。明らかに、これは生産前に変更する必要があります。同じことが MessageBox 呼び出しにも当てはまりますが、実稼働コードでは異なる方法で処理される可能性があります。
ありがとう!
.net - フレームワーク 4.0 でコンパイルされた MakeSfxCA.exe および DLL
Microsoft .NET Framework 4.0 でコンパイルされた dll ファイルがあります。
MakeSfxCA.exe ファイルを使用していて、dll をパラメーターの 1 つとしてコマンド ラインに渡すと、次のエラー メッセージが表示されます。
どんな助けでも大歓迎です。
前もって感謝します。
wix - DTF: 解凍せずにアーカイブ内のファイルを更新する
WiX 3.5 にバンドルされているDeployment Tools Foundationを使用しています。最初に解凍せずに更新したいファイルを含むアーカイブがあります - 編集はセットアップ中のユーザー入力に基づいています。
このファイルへの参照を取得し、更新を実行し、アーカイブからファイルを抽出せずにファイルへの変更を保存するにはどうすればよいですか? カスタム アクションは C# で記述されています。
DTF アセンブリと同じバージョンのWix v3.5.2415を使用しています。
wix - DTF (マネージド カスタム アクション) からの InstallShield "サポート ファイル" へのアクセス
InstallShield の [サポート ファイル] ビューに多数の .SQL スクリプトを配置しています。
カスタム アクションで (DTF 経由で) これらの SQL スクリプトにアクセスしたいと考えています。どうやってやるの?
wix - DTF と MsiGetProperty
関連: DTF (マネージド カスタム アクション) からの InstallShield "サポート ファイル" へのアクセス
プロパティSUPPORTDIRを読み取る必要があります。このフォーラム ( http://community.flexerasoftware.com/showthread.php?t=180742&page=3 ) によると、MsiGetProperty を使用する必要があります。
DTF から MsiGetProperty を呼び出すにはどうすればよいですか?