2014-04-09 36 views
-1

我需要在我的Wix項目中包含所有文件依賴項,手動執行它是一件很痛苦的事情。所以我搜索了這個網站,發現了這個批處理文件。我按照步驟,但得到的錯誤。批處理文件所做的是掃描所有項目並生成wxs文件。這個批處理文件有什麼問題?

@echo off 
    set SOLUTIONDIR=%1 
    set OUTPUTFILE=%2 
    echo Starting Dependency check... 
    echo ^<?xml version="1.0" encoding="UTF-8"?^> > %OUTPUTFILE% 
    echo ^<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"^> >> %OUTPUTFILE% 
    echo ^<Fragment^> >> %OUTPUTFILE% 
    echo  ^<ComponentGroup Id="MesDependance" Directory="INSTALLFOLDER"^> >> %OUTPUTFILE% 

    for %%F in (%SOLUTIONDIR%ClientSetup\bin\Debug\*.dll) do (
    echo "-- Adding %%~nxF" 
    echo  ^<Component Id="%%~nF"^> >> %OUTPUTFILE% 
    echo  ^<File Id="%%~nF" Name="%%~nxF" Source="%%~dpnxF" Vital="yes"   KeyPath="yes" DiskId="1"/^> >> %OUTPUTFILE% 
    echo  ^</Component^> >> %OUTPUTFILE% 
    ) 
    echo  ^</ComponentGroup^> >> %OUTPUTFILE% 
    echo ^</Fragment^> >> %OUTPUTFILE% 
    echo ^</Wix^> >> %OUTPUTFILE% 
    echo Dependency check done. 
+0

該錯誤是錯誤\t \t 104命令 「呼叫 」C:\ ForInstaller \ EasyLobby VMS 11 \ ClientConfigurationUtil \ GenerateDependency.bat「 」C:\ ForInstaller \ EasyLobby VMS 11 \「」 C:\ ForInstaller \ EasyLobby VMS 11 \ ClientConfigurationUtil \ Dependencies.wxs「」用代碼1退出。\t ClientConfigurationUtil –

回答

0

您的問題是空格。作爲一個通用規則,所有路徑都應該引用(以防萬一它有空格),變量中的內容不應該有引號(它很難移除它們而不是在需要時添加),並且當從變量構造路徑時內容,報價產生的路徑

@echo off 
    set "SOLUTIONDIR=%~1" 
    set "OUTPUTFILE=%~2" 

檢索不帶引號的值,存儲在不帶引號的變量中。在set命令確保內容行情被妥善保存,沒有aditional的空間添加

echo Starting Dependency check... 
    ( echo ^<?xml version="1.0" encoding="UTF-8"?^> 
     echo ^<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"^> 
     echo ^<Fragment^> 
     echo  ^<ComponentGroup Id="MesDependance" Directory="INSTALLFOLDER"^> 
    )> "%OUTPUTFILE%" 

    for %%F in ("%SOLUTIONDIR%ClientSetup\bin\Debug\*.dll") do (
     echo -- Adding %%~nxF 
     ( echo  ^<Component Id="%%~nF"^> 
      echo   ^<File Id="%%~nF" Name="%%~nxF" Source="%%~dpnxF" Vital="yes" KeyPath="yes" DiskId="1"/^> 
      echo  ^</Component^> 
     ) >> "%OUTPUTFILE%" 
    ) 

    ( echo  ^</ComponentGroup^> 
     echo ^</Fragment^> 
     echo ^</Wix^> 
    ) >> "%OUTPUTFILE%" 

    echo Dependency check done. 

所有引用文件,無論是在重定向和內部for in(被正確引用,以確保有與空間沒​​有問題。