我有一个使用DLLImport使用非托管C++ DLL的托管C#dll.一切都很好.但是,我想在我的托管DLL中嵌入非托管DLL,如Microsoft解释:
所以我将非托管dll文件添加到我的托管dll项目,将属性设置为'Embedded Resource'并将DLLImport修改为:
[DllImport("Unmanaged Driver.dll, Wrapper Engine, Version=1.0.0.0,
Culture=neutral, PublicKeyToken=null",
CallingConvention = CallingConvention.Winapi)]
Run Code Online (Sandbox Code Playgroud)
其中'Wrapper Engine'是我托管DLL的程序集名称'Unmanaged Driver.dll'是非托管DLL
当我跑步时,我得到:
访问被拒绝.(HRESULT异常:0x80070005(E_ACCESSDENIED))
我从MSDN和http://blogs.msdn.com/suzcook/看到了这应该是可能的......
我正在使用一个使用iTextSharp.dll和WebCam_Capture.dll的C#程序.当我构建程序时,它会在调试文件夹中创建可执行文件,并且它还会按预期将这两个dll复制到调试文件夹中.我想将它们合并为一个可执行文件,但是我失败了.这两个库在解决方案资源管理器中的引用中可见.我还将它们添加为资源.可执行文件大小变得更大,等于三个文件的总和,但是可执行文件仍然需要在其目录中使用这些库...我使用资源文件的"构建操作"属性但没有更改.我也试过ILmerge,但它给了我一个错误.所以我该怎么做?
更新:这是我从ILmerge得到的:
An exception occurred during merging:
Unresolved assembly reference not allowed: System.Core.
at System.Compiler.Ir2md.GetAssemblyRefIndex(AssemblyNode assembly)
at System.Compiler.Ir2md.GetTypeRefIndex(TypeNode type)
Run Code Online (Sandbox Code Playgroud)
顺便说一句,这只是一个Windows应用程序,一个表格将被填写并打印为pdf,并通过网络摄像头拍照(如果有的话).谢谢大家!
要运行我需要的应用程序AxInterop.WMPLib.dll,Interop.WMPLib.dll它位于Debug和Release文件夹中.有没有办法将这些dll包含在exe中,所以我的应用程序只能在一个文件中使用?
我有一个在Visual Studio 2010中构建的控制台应用程序.
当我实际构建项目时,我得到\ bin\Debug\MyProj.exe下的.exe文件.
当我粘贴并从其他位置运行此.exe时,它也期待其他文件.
有什么想法我怎么能把它作为独立的exe文件.
我有一个依赖于几个dll的项目,一旦我编译它,它需要我在与dll相同的文件夹中运行.exe.我可以将它们打包在一起,所以我不必这样做吗?
作为参考,我正在使用C#