我不确定这是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?
答案 0 :(得分:1)
如果DLL被解决方案中的另一个项目引用,只要在属性中将Copy to local
设置为true,就可以从该项目的输出文件夹中可靠地获取它。
或者,预构建事件可以将文件复制到您所需的位置。