如何在Wix安装程序中使用外部文件?

时间:2015-10-20 08:35:56

标签: visual-studio wix

我不确定这是Wix还是Visual Studio问题但是这里有:

我基本上创建了一个小型安装程序,可以将PowerShell模块安装到%USERPROFILE%\WindowsPowerShell\Modules\DatabaseUserManagement。我的.wxs文件中的目录树如下所示:

<Directory Id="TARGETDIR"
               Name="SourceDir">
      <Directory Id="PersonalFolder">
        <Directory Id="WindowsPowerShellDir"
                   Name="WindowsPowerShell">
          <Directory Id="ModulesDir"
                     Name="Modules">
            <Directory Id="DatabaseUserManagementDir"
                       Name="DatabaseUserManagement">
              <Component Id="CMP_DatabaseUserManagementDLL"
                         Guid="MY-GUID-HERE">
                <File Id="FILE_DatabaseUserManagementDir_DatabaseUserManagementDLL"
                      Source="Files\DatabaseUserManagement.dll"
                      KeyPath="yes"/>
              </Component>
            </Directory>
          </Directory>
        </Directory>
      </Directory>
    </Directory>

现在这不会编译,因为DatabaseUserManagement.dll实际上是作为链接添加到解决方案中的,因此不存在于“文件”中。子目录。

错误很简单:
The system cannot find the file 'Files\DatabaseUserManagement.dll'.

我尝试做的是在项目构建时,我希望它能够从它的原始位置复制dll(例如,让我们说它&#39;将C:\ Files \ DatabaseUserManagement.dll)放入&#39; Files&#39;下的项目中。子目录然后构建项目。

有没有办法实现这一点,还是每次更新时都必须手动复制此DLL?

1 个答案:

答案 0 :(得分:1)

如果DLL被解决方案中的另一个项目引用,只要在属性中将Copy to local设置为true,就可以从该项目的输出文件夹中可靠地获取它。

或者,预构建事件可以将文件复制到您所需的位置。