我的msi设置是在安装屏蔽中创建的,我正在执行DTF自定义操作dll作为提交自定义操作。如果我将MessageBox.Show插入自定义操作中,我可以看到PROGRAMFILESDIR中有一个名为" CustomActionProject.CA.dll -“的临时文件夹,并且有一个复制的CustomActionProject.CA.dll及其所有引用。
有没有办法告诉技术不要创建这个临时文件夹和extract+execute CustomActionProject.CA.dll在同一个文件夹中.CA.dll所在的位置?
编辑:
我发现我不能通过配置.CA.dll来包含wix.ca.targets中的引用。在我的例子中,它防止.CA.dll包含20 my的dll。
现在,我想确保CustomActionProject.dll能够看到与产品一起安装的引用。
这些档案是:
<ProgramFilesFolder>
<MyApplicationFolder>
CustomActionProject.CA.dll
... About 30 dlls installed with the application that CustomActionProject.dll needs to call
<Place I Would Like to See CustomActionProject.dll extracted> 发布于 2014-09-04 18:30:44
DTF自动将它的文件提取到临时文件夹中执行,然后清理处理。这是非常好的,因为它消除了某些种族条件。如果您愿意,仍然可以将这些文件写入安装程序中。例如,在前一家公司,我们的安装程序在安装过程中使用了几个DLL进行许可证检查,并在运行时安装它们供应用程序使用。
顺便说一句,确保你看过这个:
WiX DTF行为警报
发布于 2014-09-02 23:33:00
您的自定义操作是用托管.Net语言(可能是C#或VB.Net)编程的。由于msi文件可能只包含由本机代码组成的dll自定义操作-- DTF工具,特别是工具makesfxca.exe --将托管dll与辅助代码一起包装/包装,从而产生自提取的本机代码dll。按照WIX的命名约定,本机自定义操作dll包含一个.CA infix。
为了使其工作(即用语言编写的自定义操作生成托管代码),必须进行自提取。所以你的问题的简短答案是"No“。
https://stackoverflow.com/questions/25571093
复制相似问题