【问题标题】:wix copy file errorwix复制文件错误
【发布时间】:2012-08-02 10:56:26
【问题描述】:

我收到此错误:

未解决对符号“目录: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”的源已压缩 InstallFiles:文件: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

【问题讨论】:

    标签: wix wix3.5


    【解决方案1】:

    在您的&lt;CopyFile&gt; 中包含DestinationDirectory="SQLSERVERDATAPATH" 这意味着您还必须在某处拥有&lt;Directory&gt;id="SQLSERVERDATAPATH"

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

    【讨论】:

    • 我将其更改为 DestinationProperty,现在它可以编译但它不会将文件复制到目标文件夹。
    • 我更新了我的帖子。我将 移到 元素中,还是一样。
    • 安装时创建日志文件; msiexec /i "your.msi" /l*v "C:\temp\install.log",并检查是否有错误
    • 日志没有显示出任何问题。我用日志更新了我的帖子,使其更清晰。
    • 我发现 CopyFile 在 Windows 7 上工作,但在 Windows XP 上没有任何复制。查看此功能请求:sourceforge.net/p/wix/feature-requests/684
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-17
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多