1

我收到此错误:

未解决对“产品:*”部分中符号“目录:SQLSERVERDATAPATH”的引用

<Property Id="SQLSERVERINSTANCENAME" >
  <RegistrySearch Id="SqlServerInstanceName" Root="HKLM" Key="SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL" Name="MSSQLSERVER" Type="raw"/>
</Property>

<Property Id="SQLSERVERDATAPATH" >
  <RegistrySearch Id="SqlServerDataPath" Root="HKLM" Key="SOFTWARE\Microsoft\Microsoft SQL Server\[SQLSERVERINSTANCENAME]\Setup" Name="SQLDataRoot" Type="raw"/>
</Property>

<DirectoryRef Id="SomeFolder">
      <Component Id="MDFFileCopyComponent" Guid="4A002555-D939-4DC9-8C23-62747C2BA905">
        <!--<RemoveFile Id="DatabaseFileRemove" Name="MyFile" On="install" Directory="MyCopyDir" />-->
        <CopyFile Id="MDFFileCopy" FileId="MDF" DestinationDirectory="SQLSERVERDATAPATH" />
      </Component>
      <Component Id="LDFFileCopyComponent" Guid="4A002555-D939-4DC9-8C23-62747C2BA905">
        <!--<RemoveFile Id="DatabaseFileRemove" Name="MyFile" On="install" Directory="MyCopyDir" />-->
        <CopyFile Id="LDFFileCopy" FileId="LDF" DestinationDirectory="SQLSERVERDATAPATH" />
      </Component>
</DirectoryRef>

更新:

<DirectoryRef Id="SomeFolder">
  <Component Id="cmpMDF" Guid="066AFD32-D9B4-42A9-AEE1-F1951DAE959F">
    <File Id="MDF" Name="Database.MDF" Source="DatabaseScripts/Database/Database.MDF" KeyPath="yes" ReadOnly="no">
      <CopyFile Id="MDFFileCopy" DestinationProperty="SQLSERVERDATAPATH" />
    </File>
  </Component>
  <Component Id="cmpLDF" Guid="311283B0-A6E8-402D-BB33-D1BEB6EA282B">
    <File Id="LDF" Name="Database.LDF" Source="DatabaseScripts/Database/Database.LDF" KeyPath="yes" ReadOnly="no">
      <CopyFile Id="LDFFileCopy" DestinationProperty="SQLSERVERDATAPATH" />
    </File>
  </Component>
</DirectoryRef>

日志:

MSI (s) (18:BC) [13:42:32:002]: 执行操作: FileCopy(SourceName=Database.MDF,SourceCabKey=MDF,DestName=Database.MDF,Attributes=512,FileSize=1178468352,PerTick= 32768,,VerifyMedia=1,,,,,CheckCRC=0,,,InstallMode=58982400,HashOptions=0,HashPart1=-67171634,HashPart2=622189464,HashPart3=-328220288,HashPart4=-1777642375,,)

MSI (s) (18:BC) [13:42:32:006]:文件:C:\Program Files\MyApp\Database\Database.MDF;待安装;不会打补丁;没有现有文件

MSI (s) (18:BC) [13:42:32:009]:文件“MDF”的源已压缩安装文件:文件:Database.MDF,目录:C:\Program Files\MyApp\Database\,大小: 1178468352

MSI (s) (18:BC) [13:42:32:015]: 注意: 1: 2318 2: C:\Program Files\MyApp\Database\Database.MDF

MSI (s) (18:BC) [13:42:32:034]: 注意: 1: 2360

4

1 回答 1

0

在你的<CopyFile>你包括DestinationDirectory="SQLSERVERDATAPATH" 这意味着你还必须有一个<Directory>地方id="SQLSERVERDATAPATH"

编辑:看起来你想DestinationProperty="SQLSERVERDATAPATH"改用。见http://wix.sourceforge.net/manual-wix2/wix_xsd_copyfile.htm

于 2012-08-04T20:46:14.203 回答