【发布时间】:2011-06-13 02:45:05
【问题描述】:
我的 XBAP 应用程序使用两个 win32 dll 和通常的许多 .Net dll。由于我们将 .net 引用添加到项目本身,这不是问题,因为它们都会在发布项目时自动部署;只是他们的名字从mydotnet.dll变成了mydotnet.dll.deploy。
但问题是,win32 dll 没有被部署,它们的名称也没有改变。我明白原因。这是因为我使用 p/invoke 技术调用它们,并且它们没有添加到项目中。事实上,Visual Studio 2010 不允许我将它们添加到引用中。所以我手动将它们复制到发布文件夹,并尝试试验是否可行。但它没有用。浏览器显示的错误是这样的:
System.DllNotFoundException: 无法 加载 DLL 'Player.dll':指定的 找不到模块。 (例外 来自 HRESULT:0x8007007E)
在 Player.PlayerProxy.Initialize()
atRunaware.WpfBrowserApp.Player.Page1.PlayFile(对象 发送者,RoutedEventArgs e)
谁能解释一下这是怎么回事?有什么解决办法吗?
以前我试图在 Silverlight 中做我想做的事情,但Austin 建议我使用 XBAP 来实现同样的事情。上一主题的网址:
【问题讨论】:
-
客户端计算机是否安装了 Visual Studio 运行时二进制文件?检查原生 DLL 的依赖关系,看看是否需要部署其他任何东西。