Hi Kaveh,

I nearly had the same problem, but didn't try tallow at all. In our Solution, 
we simply use a vbscript, that runs as Votive-PreBuildEvent and harvests our 
Webproject. Output is a .wxi file, that is simply included while creation of 
setup.

I'll post the code here, maybe its usefull for you.

Oliver

[code]
ExcludeExtensions = Array(".cs", ".csProj", ".csproj.vspscc", ".csproj.user")
ExcludeFolders = Array("obj", "Properties")

indent = 1

' setting needed objects
Set WshShell = CreateObject("Wscript.shell")
Set fso = CreateObject("Scripting.FileSystemObject")

call HarvestWebFiles()

WScript.Quit
'########################################################################################

private sub HarvestWebFiles()
        dim FilesInclude

        Set FilesInclude = fso.CreateTextFile("Files.wxi",True)
        FilesInclude.WriteLine("<?xml version='1.0' encoding='utf-8'?>")
        FilesInclude.WriteLine("<Include xmlns=" & Chr(34) & 
"http://schemas.microsoft.com/wix/2006/wi"; & Chr(34) & " xmlns:iis=" & Chr(34) 
& "http://schemas.microsoft.com/wix/IIsExtension"; & Chr(34) & " >")

        set Folder = fso.GetFolder("YOURTARGETFOLDER")

        call HarvestFolder(FilesInclude, Folder)

        FilesInclude.WriteLine("</Include>")
        FilesInclude.Close
end sub

private sub HarvestFolder(FilesInclude, Folder)

        for each subfolder in Folder.SubFolders
                FilesInclude.WriteLine(string(indent,vbtab) & "<Directory Id='" 
& NewId & "' Name='" & subfolder.Name & "'>")
                indent = indent + 1
                if not (IsExcludedFolder(subFolder.Name)) then
                        call HarvestFolder(FilesInclude, subFolder)
                end if
                indent = indent - 1
                Filesinclude.WriteLine(string(indent,vbtab) & "</Directory>")
        next

        if(Folder.Files.Count > 0) then

                FilesInclude.WriteLine(string(indent,vbtab) & "<Component Id='" 
& NewId & "' Guid='" & NewGuid & "'>")
                indent = indent + 1
                for each file in Folder.Files
                        if not (IsExcludedFile(file.Name)) then
                                fileId = NewId
                                FilesInclude.WriteLine(string(indent,vbtab) & 
"<File Id='" & fileId & "' Name='" & file.Name & "' Source='" & File.Path & 
"'/>")
                                FilesInclude.WriteLine(string(indent,vbtab) & 
"<RemoveFile Id='" & fileId & "' On='uninstall' Name='" & file.Name & "'/>")
                        end if
                next
                indent = indent - 1
                FilesInclude.WriteLine(string(indent,vbtab) & "</Component>")

        end if

end sub

private function NewGuid()
        Set TypeLib = CreateObject("Scriptlet.TypeLib")
                NewGuid = mid(TypeLib.Guid, 2, len(TypeLib.Guid)-4)
        Set TypeLib = nothing
end function

private function NewId()
        Set TypeLib = CreateObject("Scriptlet.TypeLib")
                NewId = "_" & Replace(mid(TypeLib.Guid, 2, 8),"-","_")
        Set TypeLib = nothing
end function

private function IsExcludedFile(FileName)
        IsExcludedFile = false
        for each e in ExcludeExtensions
                if (Right(FileName,len(e)) = e) then
                        WScript.Echo ("File is excluded: " & FileName)
                        IsExcludedFile = true
                        exit for
                end if
        next
end function

private function IsExcludedFolder(FolderName)
        IsExcludedFolder = false
        for each f in ExcludeFolders
                if (InStr(FolderName,f) > 0) then
                        WScript.Echo ("Folder is excluded: " & FolderName)
                        IsExcludedFolder = true
                        exit for
                end if
        next
end function
[/code]

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to