1

您好,我需要从用户指定的位置复制文件,我该如何设置它以便我可以使用目录 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

4

1 回答 1

1

是的,有可能,我认为 CopyFile 元素是您所需要的:

<Component Id="MyComponent" Guid="YOUR_GUID">  
 <CopyFile Id="dll.dll" SourceProperty="[MYDIR]" SourceName="dll.dll" DestinationDirectory="INSTALLDIR" DestinationName="dll.dll" /> 
</Component>
于 2012-12-20T09:42:45.150 回答