2012-06-05 63 views
2

我有一個WiX安裝程序(比如10.0),用於複製一些文件。一切與文件複製工作正常。我正在嘗試從該版本創建一個修補程序。每當補丁(10.1)運行時,和以前的10.0安裝了複製某些文件,我收到下面的區域在運行repair:WiX CopyFile /目錄路徑在補丁期間不可用

「指定的路徑[路徑]是不可用的。」

我檢查過了,指定的路徑是可用的。被複制到的文件就在那裏。此外,在10.0安裝中從其中複製文件的源數據目錄也在那裏。 還有其他目錄可以將其他文件複製到其中。我不確定他們是否也會有這個錯誤,但我現在還沒有看到它。

可能會出現什麼問題?

這裏是我的.wxs代碼,這是在這兩個原來相同的安裝和補丁:

<DirectoryRef Id="SAVEDDBFOLDER"> 
    <Component Id="SavedDBVDirectory" Guid="xxx"> 
    <CreateFolder> 
     <Permission User ="[WIX_ACCOUNT_ADMINISTRATORS]" GenericAll="yes"/> 
     <Permission User ="[WIX_ACCOUNT_USERS]" GenericAll="yes"/> 
    </CreateFolder> 
    </Component> 
</DirectoryRef> 

<CustomAction Id="SetOldDBVWFiles" 
       Property="OLDDBVWFILES" 
       Value="[PATHTOOLDVER]Saved DB Files"/> 
<DirectoryRef Id="SAVEDDBFOLDER"> 
    <Component Id="CopyOldDataBVFiles" Guid="yyy"> 
    <CopyFile Id="CopyOldDBVWFiles" 
       Delete="yes" 
       SourceProperty="OLDDBVWFILES" DestinationProperty="SAVEDDBFOLDER" SourceName="*"/> 
    <Condition> 
     <![CDATA[(NOT Installed) AND (NOT REMOVE) AND (PREVIOUSVERSION << "8." OR PREVIOUSVERSION << "7.")]]> 
    </Condition> 
    </Component> 
</DirectoryRef> 

     <!--This custom action runs in 10.0 install--> 
<!--PREVIOUSHYVERSION is set for 10.0; it is not for 10.1--> 
<CustomAction Id="SetOldDBVWFilesHy" 
       Property="OLDHYDBVWFILES" 
       Value="[PATHTOOLDAD]Saved DB Files"/> 
<DirectoryRef Id="SAVEDDBFOLDER"> 
    <Component Id="CopyOldHyDatabusViewerFiles" Guid="zzz"> 
    <CopyFile Id="CopyOldHyDBVWFiles" 
       Delete="yes" 
       SourceProperty="OLDHYDBVWFILES" DestinationProperty="SAVEDDBFOLDER" SourceName="*"/> 
    <Condition> 
     <![CDATA[(NOT Installed) AND (NOT REMOVE) AND (PREVIOUSHYVERSION << "4.")]]> 
    </Condition> 
    </Component> 
</DirectoryRef> 

回答

1

好吧,我想通了這一個了。從日誌文件(MSIEXEC/L * V「[日誌文件]」),我發現路徑變量之一 - 「PATHTOOLDAD,」不,這不是給爸爸的工具的路徑 - 沒有在補丁中設置。它應該不重要,因爲該屬性僅用於初始安裝,並且完全不用於該補丁,但必須設置爲某種內容。我添加了選項「PATHTOOLDAD = [任何]」以呼叫msiexec設置屬性,瞧,它的工作。

MSIEXEC/I [MSP補丁文件] PATHTOOLDAD = [舊程序的路徑被移除]