我正在创建一个安装程序,并在c#中使用自定义操作编写代码。 在自定义动作调用的方法中调用另一个不同类的不同的常用方法,所以基本上在不同的dll中。
当我尝试运行安装程序时,会抛出异常说: System.FileNotFoundException:无法加载文件或程序集CustomAction.Logger
虽然我通过install sheild调用的自定义操作位于不同的dll中, 所以基本上自定义动作是完美地调用方法,但是当我调用公共方法时,它会抛出错误。
那么,我们能否完成它?
此致 莫希特
答案 0 :(得分:0)
适用于所有基于MSI的安装。
如果您将自定义操作添加为附件,则在安装时Windows Installer将提取到TEMP目录,并使用随机生成名称并从那里运行。
如果只是按名称而不是完整路径加载第二个DLL,则此DLL也必须位于TEMP目录中。或者当然指定DLL的完整路径。
某些安装程序创作工具支持临时文件(即定义您在项目中添加的临时文件,以便安装程序从TEMP文件夹中的开头提取,而不是在 InstallFiles之后标准动作),我不知道IS是否有一个,因为我没有使用它。