2016-03-22 17 views
0

私の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から来ています。

答えて

1

自動GUID生成を使用するには、ビルド時にパスをルートにする必要があります。 WIX_DIR_COMMON_DOCUMENTSは、インストール時まで割り当てられません。

これは、ビルド時に、たとえば[CommonAppDataFolder]のルートで修正できます。

関連する問題