0

私たちの組織では、ビルドが成功するたびに、自動化されたスクリプトがすべての MSI をビルドの場所から共有フォルダー内の新しいフォルダーにコピーします。150以上のプロジェクトがあります。私が直面している問題は、20 個のプロジェクトしか変更されていないにもかかわらず、自動化されたスクリプトが 150 個の MSI をすべて新しいフォルダーにコピーして貼り付けることです。したがって、最近のビルドでどのプロジェクトの MSI が変更されたかを特定できません。タイムスタンプが表示される場合、新しいフォルダー内のすべての MSI で同じです。

プログラムまたはツールを使用して手動で、変更された MSI のリストを特定する方法を誰かが提案できますか? 手動の場合、ファイルを 1 つずつ比較するべきではありません。

基本的に、2 つの共有フォルダーを比較して、変更された MSI のリストを生成したいと考えています。

注意 : ビルドの場所にアクセスすることはできません。また、既存の自動化されたスクリプトを変更する範囲もありません。しかし、私は新しいものを書くことができます。

4

1 に答える 1

1

Windows インストーラー パッケージには、最終保存日時の概要プロパティを含む概要情報ストリームがあります。ファイルのプロパティをクリックして詳細ページ (Origin | Content created property) に移動すると、エクスプローラーでこれを確認できます。これには、任意の数の言語でプログラムによってアクセスできます。C# を使用している場合は、Windows インストーラ XML の (WiX) Deployment Tools Foundation (DTF) Microsoft.Deployment.WindowsInstaller 相互運用アセンブリを参照してください。次のようなコンストラクタを持つ SummaryInfo クラスがあります。

public SummaryInfo(
    string packagePath,
    bool enableWrite
)

そこから、次のプロパティがあります。

public DateTime LastSaveTime { get; set; }
于 2015-02-17T14:05:01.053 に答える