私のWIXインストーラは2つのフラグメントを持っていますが、1つはx64プログラムファイルに行きますが、うまくいきます。公開ドキュメントにWIXフラグメントのファイルをインストール
<Target Name="BeforeBuild">
<HeatDirectory
Directory="$(SolutionDir)\..\..\MyApp\MyApp.Application\bin"
OutputFile="$(SolutionDir)\..\MyApp\Fragments\InstallFiles.wxs"
ComponentGroupName="MyAppInstallFilesComponentGroup"
DirectoryRefId="MYAPPINSTALLDIRECTORY"
PreprocessorVariable="var.ProjectSourceFilesDir"
AutogenerateGuids="true"
ToolPath="$(SolutionDir)\..\tools\3.10\binaries"
SuppressFragments="true"
SuppressCom="true"
SuppressRegistry="true"
SuppressRootDirectory="true"
Transforms="$(SolutionDir)\..\MyApp\Transforms\InstallFilesExclude.xsl" />
<HeatDirectory
Directory="$(SolutionDir)\..\..\MyAppPublicDocsSourceFiles"
OutputFile="$(SolutionDir)\..\MyApp\Fragments\MyAppPublicDocsFiles.wxs"
ComponentGroupName="MyAppPublicFilesComponentGroup"
DirectoryRefId="MYAPPPUBLICDIRECTORY"
PreprocessorVariable="var.MyAppPublicDocsSourceDir"
AutogenerateGuids="true"
ToolPath="$(SolutionDir)\..\tools\3.10\binaries"
SuppressFragments="true"
SuppressCom="true"
SuppressRegistry="true"
SuppressRootDirectory="true"/>
</Target>
マイMyAppPublicDocsFiles:私は、私がBeforeBuild
次のコードしているにも.wixprojファイルで
"C:\Users\Public\Documents\MyAppPublic"
ような何かに行くために必要なファイルのためのWXSフラグメントを生成するために熱を使用しようとしています.wsxファイルが作成されています。私はVisual Studioを使用して私の.wixprojファイルを含むソリューションをコンパイルしています。私が見ているエラーは:
1>C:\Users\user.name\...\MyApp\Fragments\MyAppPublicDocsFiles.wxs(55,0): error LGHT0231:
The component 'cmp415810817DCD69555E8A9CBFB0AA536A' has a key file with path
'TARGETDIR\publicdocs\MyAppPublicDocs\file1.txt'.
Since this path is not rooted in one of the standard directories (like ProgramFilesFolder),
this component does not fit the criteria for having an automatically generated guid.
(This error may also occur if a path contains a likely standard directory such as
nesting a directory with name "Common Files" under ProgramFilesFolder.)
1>Done building project "MyApp.wixproj" -- FAILED.
私の公開書類のソースディレクトリに各ファイルの繰り返しです。
これは私の.wixprojコードです:私はこのエラーメッセージを解釈するにはどうすればよい
<PropertyRef Id="WIX_DIR_COMMON_DOCUMENTS"/>
<Feature Id='MyAppInstallFiles' Title='MyApp Install Files' Description='The application'>
<Feature Id='ApplicationFiles' Title='MyApp Application Files' Description='Application Files' Level='1'>
<ComponentGroupRef Id='MyAppInstallFilesComponentGroup' />
</Feature>
</Feature>
<Feature Id='MyAppPublicDocFiles' Title='PublicDoc Files' Description='Data files'>
<Feature Id='PublicDocFiles' Title='PublicDoc Files' Description='Data files' Level='1' ConfigurableDirectory='MYAPPPUBLICDIRECTORY'>
<ComponentGroupRef Id='MyAppPublicDocFilesComponentGroup' />
</Feature>
</Feature>
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='ProgramFiles64Folder' Name='PFiles'>
<Directory Id='$(var.ShortManufacturer)' Name='$(var.ShortManufacturer)'>
<Directory Id='SOLIDXINSTALLDIRECTORY' Name='$(var.ProductName)'>
</Directory>
</Directory>
</Directory>
<Directory Id="WIX_DIR_COMMON_DOCUMENTS" Name="PublicDocs">
<Directory Id='MYAPPPUBLICDIRECTORY' Name='$(var.PublicDocName)'/>
</Directory>
</Directory>
?要約すると、公開ドキュメントの場所にWIXフラグメントファイルをインストールしようとしています。 This questionは.wixprojに直接ファイルを持ち、そのXMLノードの下にリストされています。私のファイルはheat.exeから来ています。