8

インストール時に、必要に応じていくつかの .ini ファイルを SOURCEDIR から TARGETDIR にコピーします。これは、.msi ファイルが配置されているディレクトリから、アプリがセットアップされている宛先フォルダーにコピーすることを意味します。

しました<CopyFile Id="CopyIniFile" DestinationProperty="INSTALLDIR" SourceProperty="SOURCEDIR" SourceName="Dreem15.ini" Delete="no" />が、何もしていないようです。ログファイルはあまり役に立ちません。

私は CopyFile を使用してより複雑なシナリオを実行することに成功しましたが、この単純なシナリオには困惑しています。

編集: MoveFile テーブルに次の行があります:

|FileKey |Component |SourceName |SourceFolder|DestFolder|オプション
|CopyIniFile |CoAppLicAndIni|Dreem15.ini |SOURCEDIR |INSTALLDIR|0
|MoveDataFile|CoAppLicAndIni|Dreem10_Personal.mdf|DB_DIR10 |INSTALLDIR|0

2つ目は機能しています。DB_DIR10このようにレジストリで検索されます

<プロパティ ID="DB_DIR10">
    <RegistrySearch Id='DbDirSearch10' Type='raw' Root='HKLM' Key='Software\$(var.CompanyName)\$(var.MsdeInstance)' Name='Dreem10_Personal' />
</プロパティ>
4

2 に答える 2

4

sourcedirプロパティのWindowsインストーラのドキュメントによると、「インストールパッケージのソースキャビネットファイルまたはソースファイルツリーを含むルートディレクトリ」を指します。

したがって、SourceDirが事前定義されたWindowsインストーラープロパティであることに気付いていないか、msiを含むインストールメディアからパッケージ化されていないファイルをコピーしようとしています。後者の場合、ファイルが適切にアンインストールされるように、通常のコンポーネントのようにファイルをインストールする方がおそらく理にかなっています。

編集:「インストールメディアからのコピー」シナリオをテストしましたが、うまくいきました。また、私はインストールしました

misexec /lvx* install.log /i mymsi.msi

ログには、コピー中のファイルが表示されていました。あなたの場合、ログは何と言っていますか?

Edit2: CopyFileは私のために機能しましたが、より良い解決策は、次のように非圧縮メディアをwxに追加することです。

<Media Id='2'/>

次に、File要素を次のようにカスタマイズ可能な構成ファイルに適合させます。

<File Source='path\to\default\config.ini' Compressed='no' DiskId='2' />

これにより、インストーラーはmsiと同じフォルダーでconfig.iniを検索し、カスタマイズ性とクリーンアンインストールの利点を組み合わせます。

于 2009-01-21T20:10:02.763 に答える
1

代わりに使用できますかDestinationDirectory="INSTALLDIR"、それともその場でプロパティを作成する必要がありますか??

WIX Wiki の CopyFile 要素

この wxs は、ファイルを MSI に配置します

<Component Id="myIni.ini" Guid="*">
  <File Id="myIni.ini" Name="myIni.ini" KeyPath="yes" Source="!(wix.Files)\myIni.ini">
    <CopyFile Id="CopyIni" DestinationProperty="TARGETDIR" />
  </File>
</Component>
于 2009-01-21T15:56:02.403 に答える