【问题标题】:Making an installer for .net application that depends on avifil32.dll?为依赖avifil32.dll 的.net 应用程序制作安装程序?
【发布时间】:2010-08-09 13:45:46
【问题描述】:

我是 .net 新手,遇到了这个问题:我想为使用 avi 包装器的应用程序制作安装程序,描述为 here。该库依赖于 avifil32.dll,正如我在包含

的源代码中发现的那样

[DllImport("avifil32.dll", PreserveSig=true)]。

我在 Visual Studio 2008 中进行了安装项目,安装程序在某些机器上运行良好。但是,有一台机器不工作,它在与 .avi 导出相关的部分完全中断,所以我认为原因与这种外部依赖有关。 如果目标计算机上缺少此(或通常任何)外部 dll,我应该如何让安装程序包含它?

【问题讨论】:

    标签: .net visual-studio-2008 installation dllimport


    【解决方案1】:

    您可以在设置项目中右键单击主输出,然后右键单击应用程序文件夹,选择添加程序集并浏览到您的 dll 吗?

    如果您然后右键单击程序集,您可能需要设置注册设置以在安装时注册 dll。

    这里有一个article 可能会有所帮助。

    【讨论】:

    • 我无法将它作为参考添加,因为它说它不是有效的 assemply 或 com dll,但我可以在安装项目中添加。我会努力回来的
    【解决方案2】:

    感谢太胖的建议。它帮助我意识到我之前关于缺少 avifil32.dll 的猜测是错误的。

    我的问题的实际原因是我使用 aviwrapper 库将位图导出为 avi 和 mpeg(我稍微修改了库以便能够在常规和 xvid 编解码器之间切换)。它可以在我的台式计算机和笔记本电脑上运行,因为我已经安装了 xvid 编解码器,但是在具有干净 Windows XP 的虚拟机上它不起作用(缺少 xvid 编解码器)。 我通过查看日志文件意识到了这一点。实际发生的是,我的方法首先尝试导出到 .mpg,然后在 avi compress 处收到异常(因为 xvid)。之后,它尝试导出到 .avi,但之前的尝试搞砸了,导出到 .avi 在文件打开时引发异常(两个导出使用相同的临时文件名,这就是它在文件打开时引发异常的原因)。

    在我注释掉 .mpg 导出后一切正常,我不必包含上述 dll。

    再次感谢您的回复。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多