2016-03-24 1 views
3

パッケージをアンインストールしてから、同じパッケージの最新バージョンをインストールしようとしています。シンプルなあなたが思うだろうが、私は私のDSCの設定で次のコードを含む場合:の.mofファイルを作成中DSCパッケージリソースのキープロパティが同じです

### remove old product setup 
    Package removeOldProduct { 
     Ensure = 'Absent' 
     Name = 'My Product Name' 
     Path = "" 
     ProductId = "" 
    } 
    ### now install the latest product setup 
    Package productSetup { 
     Ensure = 'Present' 
     Name = 'My Product Name' 
     Path = "$productShare\Repository\product.msi" 
     ProductId = "" 
     Arguments = "ACCEPT_EULA=1 /q" 
     DependsOn = '[Package]MsSql' 
    } 

を、私は次のエラーが表示されます

Test-ConflictingResources : A conflict was detected between resources '[Package]productSetup and '[Package]removeOldProduct in node 'myNodeServer'. Resources have identical key properties but there are differences in the following non-key properties: 'Path;Ensure;Arguments'.

私はしたくありませんスクリプトリソースを使用してアンインストールを処理します。私はここで間違って何をしていますか?

答えて

1

あなたの設定は冪等であると考えられていますので、これはあまり意味がありません。構成が適用されるたびに(30分ごとまたはそれが設定されている)、パッケージをアンインストールして再インストールします。

MSIインストーラは自動的にアップグレードをサポートする必要があります。つまり、(新しい)MSIのインストールを確認するだけです。

+0

私の意図は、古いバージョンのパッケージをアンインストールして、新しいバージョンの製品(開発中に引き続き更新されている)をインストールすることです。より良い質問です:.msiファイルに同じ正確なインストールが含まれているかどうか、パッケージリソースがチェックしますか?疑わしい。私の理解では、Packageリソースは、存在しない場合にのみパッケージをインストールし、期限切れではない場合にはインストールしません。 –

+0

明確にするために、最新のDev .msiファイルをフェッチしてQA VMに自動的にインストールするQA VMの構成を設定しています。 –

+0

@SamersSalib製品​​IDを入力し、パッケージの更新時に製品IDが変更された場合、動作する可能性があります。また、 '' xPSDesiredStateConfiguration'(https://github.com/PowerShell/xPSDesiredStateConfiguration)モジュールの 'xPackage'リソースを見ることもできます。このモジュールには、このバージョンをよりスムーズに動かすための追加のパラメータ(' Version'など)があります。あなたが今やっているやり方は正しいわけではなく、パッケージが更新されているかどうかに関係なく、絶え間なくアンインストールと再インストールが行われます。 – briantist

関連する問題