WiX:我如何将目录ID设置为文件源?

时间:2012-12-20 09:09:56

标签: c# wix

您好我需要从用户指定的位置复制文件,如何设置它以便我可以使用directiory ID?

像这样的东西! (这不行)

<Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLDIR" Name="name" >

            <Component Id="id1" Guid="GUID">
                <File Name="dll.dll" DiskId="1" Vital="yes"
                      Source="[MYDIR]\dll.dll" />
            </Component>

        </Directory>
        <Directory Id="MYDIR" Name="mydirname" >
        </Directory>
    </Directory>
</Directory>

我有一个浏览器,所以我设置了MYDIR但是用户指定我将找到我想要的文件的位置,然后我想使用该路径作为源可能吗?

谢谢你的回答

编辑

我放入INSTALLDIR

<CopyFile Id="dll.dll" 
SourceDirectory="MYDIR" 
SourceName="dll.dll" 
DestinationDirectory="INSTALLDIR" 
DestinationName="dll.dll" />

并且工作正常:)

唯一的问题是,如果路径错误且文件没有被复制,安装程序仍然运行而且我没有得到我的文件:(所以我必须以某种方式验证路径或做习惯来检查文件是否存在

无论如何,谢谢你的一切! :d

1 个答案:

答案 0 :(得分:1)

是的,我认为CopyFile元素是你需要的:

<Component Id="MyComponent" Guid="YOUR_GUID">  
 <CopyFile Id="dll.dll" SourceProperty="[MYDIR]" SourceName="dll.dll" DestinationDirectory="INSTALLDIR" DestinationName="dll.dll" /> 
</Component>