我的XBAP应用程序使用两个win32 dll和往常许多.Net dll一样。由于我们将.net引用添加到项目本身,这不是问题,因为它们在发布项目时都会自动部署;只是他们的名字从mydotnet.dll
更改为mydotnet.dll.deploy
。
但问题是,win32 dll没有部署,他们的名字也没有改变。我理解其中的原因。这是因为我使用p / invoke技术调用它们,并且它们没有被添加到项目中。事实上,visual studio 2010不允许我将它们添加到参考文献中。所以我手动将它们复制到发布文件夹,并试着尝试是否有效。但它没有用。浏览器显示的错误是:
System.DllNotFoundException:无法执行 加载DLL'Alayer.dll':指定的 无法找到模块。 (例外 来自HRESULT:0x8007007E)
at Player.PlayerProxy.Initialize()
atRunaware.WpfBrowserApp.Player.Page1.PlayFile(对象 sender,RoutedEventArgs e)
任何人都可以解释一下发生了什么吗?对此有什么解决方案吗?
以前我试图在Silverlight中做我想做的事,但是Austin建议我使用XBAP来实现同样的目的。上一主题的URL:
答案 0 :(得分:1)
你可以尝试:
在Publish>下检查项目属性“应用程序文件”部分,如果您的原生dll出现在那里,请确保它们已设置为包含。
尝试将dll作为内容文件包含在项目中,将copy to output目录设置为Copy Always(我认为这可能会使它们出现在第1点中提到的引用列表中,允许您将它们设置为“包含”)。