相关疑难解决方法(0)

将DLL嵌入已编译的可执行文件中

你知道,我在任何地方都没有看到一个好的答案.是否可以将预先存在的DLL嵌入到已编译的C#可执行文件中(这样您只能分发一个文件)?如果有可能的话,怎么去做呢?

通常情况下,我很酷,只是将DLL放在外面并让安装程序处理所有内容,但是有几个人在工作,他们问我这个,老实说我不知道​​.

.net c# dll merge linker

582
推荐指数
12
解决办法
35万
查看次数

如何使Visual Studio将DLL文件复制到输出目录?

我有一个依赖外部DLL文件的Visual Studio C++项目.在构建项目时,如何使Visual Studio自动将此DLL文件复制到输出目录(调试/发布)?

dll visual-studio visual-c++

94
推荐指数
6
解决办法
10万
查看次数

非托管DLL无法在ASP.NET服务器上加载

这个问题涉及一个ASP.NET网站,最初是在VS 2005中开发的,现在是在VS 2008中开发的.

这个网站使用两个非托管的外部DLL,它们不是.NET,我没有编译它们的源代码,必须按原样使用它们.

这个网站在Visual Studio中运行良好,正确定位和访问这些外部DLL.但是,当网站发布在Web服务器(运行IIS6和ASP.NET 2.0)而不是开发PC时,它无法找到并访问这些外部DLL,我收到以下错误:

Unable to load DLL 'XYZ.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

外部DLL位于网站的bin目录中,以及包装它们的托管DLL以及网站的所有其他DLL.

搜索此问题表明,许多其他人似乎在从ASP.NET网站访问外部非.NET DLL时遇到同样的问题,但我找不到可行的解决方案.

我尝试过以下方法:

  • 运行DEPENDS来检查依赖关系以确定前三个是在路径中的System32目录中,最后一个是在.NET 2框架中.
  • 我将两个DLL及其依赖项放在System32中并重新启动服务器,但网站仍然无法加载这些外部DLL.
  • 将ASPNET,IIS_WPG和IUSR(对于该服务器)的完全权限授予网站bin目录并重新启动,但网站仍然无法加载这些外部DLL.
  • 将外部DLL作为现有项添加到项目中,并将其"复制到输出"属性设置为"始终复制",并且网站仍然无法找到DLL.
  • 还将其"Build Action"属性设置为"Embedded resource",网站仍无法找到DLL.

任何有关此问题的帮助将不胜感激!

asp.net dll iis-6 unmanaged

66
推荐指数
5
解决办法
5万
查看次数

如何将C++ windows dll合并到C#应用程序exe中?

我有一个Windows C#程序,它使用C++ DLL进行数据i/o.我的目标是将应用程序部署为单个EXE.

创建这样的可执行文件有哪些步骤?

c# dll merge

34
推荐指数
1
解决办法
4万
查看次数

.NET Windows应用程序可以压缩成单个.exe吗?

我对.NET桌面应用程序不太熟悉(使用Visual Studio 2005).是否可以从单个.exe文件运行整个应用程序?

.net windows

30
推荐指数
7
解决办法
2万
查看次数

在Visual Studio项目中本地复制本机依赖项

我有一个混合模式C++项目,生成一个托管DLL程序集导出一些CLR类(称之为Managed.dll).这个项目使用的是原生dll(称之为Native.dll).

当我从另一个生成Client.exe的项目引用Managed.dll时,一切都按预期工作,除了我需要在与Client.exe相同的文件夹中手动复制Native.dll.

如果有办法说服VS本地复制(在Client.exe的bin文件夹中)不仅Managed.dll而且还有Native.dll?

我试图在清单中包含Native.dll作为依赖程序集,但这没有帮助.

编辑

Managed.dll将成为可再发行组件.它将安装在"C:\ Program Files ....."的文件夹中.当使用Visual Studio的开发人员添加对Managed.dll的引用时,还应将Native.dll复制到其项目的\ bin文件夹中.

.net c++ visual-studio

19
推荐指数
2
解决办法
1892
查看次数

P /调用Mono上动态加载的库

我正在编写一个使用一些非托管代码的跨平台.NET库.在我的类的静态构造函数中,检测平台并从嵌入式资源中提取适当的非托管库并保存到临时目录,类似于另一个stackoverflow应答中给出的代码.

因此,当它不在PATH中时可以找到它,我在将它保存到临时文件后显式加载它.在Windows上,这可以LoadLibrary从kernel32.dll 正常工作.我正在尝试dlopen在Linux上做同样的事情,但是DllNotFoundException后来在加载P/Invoke方法时我得到了一个.

我已经验证库"libindexfile.so"已成功保存到临时目录并且调用dlopen成功.我钻研了单声道来源,试图弄清楚发生了什么,我想可能归结为是否随后的调用dlopen会重用以前加载的库.(当然假设我通过单声道源头的天真一举得出了正确的结论).

这是我正在尝试做的形状:

// actual function that we're going to p/invoke to
[DllImport("indexfile")]
private static extern IntPtr openIndex(string pathname);

const int RTLD_NOW = 2; // for dlopen's flags
const int RTLD_GLOBAL = 8;

// its okay to have imports for the wrong platforms here
// because nothing will complain until I try to use the
// function
[DllImport("libdl.so")]
static extern IntPtr dlopen(string filename, int …
Run Code Online (Sandbox Code Playgroud)

c# mono pinvoke unmanaged

12
推荐指数
1
解决办法
8043
查看次数

将C++库嵌入.Net库中

在我的.Net程序集中,我必须使用一些本机(C++)dll.通常我们需要将C++ dll复制到bin文件夹中并用PInvoke它来调用它.为了节省分发成本,我想直接将C++嵌入到我的.Net dll中,这样分发的程序集数量就会减少.

知道怎么做吗?

c# c++ pinvoke

6
推荐指数
1
解决办法
1771
查看次数

将 DLL 嵌入到控制台应用程序中

可能的重复:
在已编译的可执行文件中嵌入 DLL

是否可以将 DLL 嵌入到控制台应用程序中 如果可以的话,我们会如何去做呢?

通常情况下,我很乐意将 DLL 留在外面,但工作中已经有几个人问过我这个问题,老实说我也不知道。

.net c#

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×5

.net ×4

dll ×4

c++ ×2

merge ×2

pinvoke ×2

unmanaged ×2

visual-studio ×2

asp.net ×1

iis-6 ×1

linker ×1

mono ×1

visual-c++ ×1

windows ×1