首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Mono (Linux、C#):找不到同一文件夹中的DLL (System.DllNotFoundException)

Mono是一个开源的跨平台的实现.NET Framework的软件平台。它允许开发人员使用C#等编程语言来创建跨平台的应用程序。在Linux环境下使用Mono开发时,有时会遇到找不到同一文件夹中的DLL的问题,导致System.DllNotFoundException异常。

这个问题通常是由于Mono无法正确加载所需的DLL文件导致的。解决这个问题的方法有以下几种:

  1. 确保DLL文件存在:首先要确保所需的DLL文件确实存在于指定的文件夹中。可以通过使用文件管理器或命令行工具来验证文件是否存在。
  2. 检查文件权限:确保DLL文件具有正确的权限,以便Mono可以读取和加载它。可以使用chmod命令来更改文件权限。
  3. 设置环境变量:在Linux环境下,可以通过设置LD_LIBRARY_PATH环境变量来告诉Mono在哪里查找DLL文件。可以使用export命令来设置环境变量,例如: export LD_LIBRARY_PATH=/path/to/dll/folder
  4. 使用Mono的GAC:Mono还提供了一个全局程序集缓存(GAC),可以将DLL文件安装到其中,以便Mono可以自动找到并加载它们。可以使用gacutil命令将DLL文件安装到GAC中。
  5. 检查依赖项:如果DLL文件依赖于其他DLL文件,那么确保这些依赖项也存在并正确配置。

对于使用Mono开发的应用程序,可以考虑使用腾讯云的云服务器(CVM)来部署和运行。腾讯云的云服务器提供了稳定可靠的计算资源,可以满足应用程序的需求。您可以通过腾讯云官网了解更多关于云服务器的信息:https://cloud.tencent.com/product/cvm

总结:在Linux环境下使用Mono开发时,如果遇到找不到同一文件夹中的DLL的问题,可以通过确保DLL文件存在、检查文件权限、设置环境变量、使用Mono的GAC、检查依赖项等方法来解决。腾讯云的云服务器是一个可靠的选择来部署和运行使用Mono开发的应用程序。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Xamarin 使用 GTK 提示找不到 libglib-2.0-0.dll 找不到

在使用 Xamarin 开发 Linux 应用时候,刚开始如果没有弄好 libglib-2.0-0.dll 依赖库,那么将会在运行时候,在 Gtk.Application.Init() 这句代码提示找不到这个库...解决方法是先到官网 下载 GTK# 安装包或 mono x86 应用 安装到默认路径,也就是在 C:\Program Files (x86)\GtkSharp\2.12\bin 路径,默认安装时候会加入到环境变量...接下来到 C:\Program Files (x86)\GtkSharp\2.12\bin 复制 libglib-2.0-0.dll 文件到 xamarin 输出文件夹,如 D:\lindexi\t...Unable to load DLL ‘libgtk-win32-2.0-0.dll · Issue #937 · mono/xwt Unable to load DLL ‘libgtk-win32-2.0...xamarin-forms-gtk-weather-sample: Xamarin.Forms GTK Backend Weather Sample windows - Xamarin Studio, GTK 2.0 C#

2.2K10

dotnet 将C#编译为wasm让前端html使用

,大概就是从 Hello 拿到输入,然后修改输入然后输出 接下来就是重点了,如何将 C# 代码编译为 WebAssmebly 了 这里 C# 需要通过 mono 辅助用于将 IL 转换为 WebAssembly...c:\Program Files(x86)\Mono\bin\ 文件夹 然后下载 mono 在 wasm 运行时,请 点击下载 将下载 zip 文件夹解压缩到本地文件夹,同时记住这个文件夹,如我将.../mono/framework/WebAssembly.Net.Http.dll Program.cs 注意将 f:/lindexi/mono 文件夹替换为你刚才解压缩 mono 运行时所在文件夹...html 引用 publish 文件夹 mono-config.js 和 runtime.js 和 dotnet.js 文件夹 接下来就是如何在 js 代码调用 C# 编译 dll 了 通过 Module.mono_bind_static_method 可以将 js 一个方法绑定到一个静态方法里面

2.3K10

使用Visual Studio 2015 开发ASP.NET MVC 5 项目部署到MonoJexus

最新Mono 4.4已经支持运行asp.net mvc5项目,有的同学听了这句话就兴高采烈拿起Visual Studio 2015创建了一个mvc 5项目,然后部署到Mono上,浏览下发现一堆错误出现...这一行告诉了我们找不到roslyn c# 编译器, 当前版本Mono 编译器还是Monomcs编译器,并没有完成到roslyn 这个编译器升级工作,这个工作正在进行过程,在不远将来就可以统一使用...l Microsoft.Net.Compilers 重新发布到jexus,通过浏览器可以看到清新Bootstrap界面了, mono 4.4.2版本目前对mvc5兼容性相当好了。...其他兼容性问题都是Windows/Linux差异,比如大小写和路径问题等,例如从Nuget上下载下来System.Web.Webpages.dll 几个相关dll 中间pages 那个p是小写...在jexus,只需要把 /usr/jexus/jws这个脚本文件 “export MONO_IOMAP=...”这一句前边“#”去掉,就可以不区分大小写了。

1.9K100

Unity3D 入门:为 Unity C# 项目添加 dll 引用或安装 NuGet 包

背景 对于传统 .NET/C# 开发者来说,在解决方案管理 NuGet 包,在 C# 项目中引用 dll 或 NuGet 包是家常便饭。...开发 Unity C# 脚本,说说根目录那些 sln 和 csproj 文件 - walterlv 如何引用 dll 或者安装 NuGet 包 在 Unity ,是给 C# 脚本引用 dll 或者安装...Unity 引用 dll 有两种官方途径: Assets\csc.rsp 文件,用于指定引用 .NET 运行时 dll Assets\Plugins 文件夹,用于指定引用单独 dll 文件 当然,...这两个能否正常使用,以及扔到 Plugins 文件夹 dll 应该是什么平台,取决于 Unity 项目的配置。...NuGet 包,也是从对应文件夹取出来 dll 丢到 Plugins 文件夹

1.3K20

32和64位CentOS 6.0下 安装 Mono 2.10.8 和Jexus 5.0

CentOS是一个基于RHELLinux发行版,其目的是为了提供一套免费与自由企业等级Linux发行版。.../configure --prefix=/usr),如果安装到一个系统根本"不了解"文件夹,仅ldconfig都不行,还要在/etc/ld.so.conf文件或/etc/ld.so.conf.d 添加路径后再...2) 删除旧版:       sudo rm *.exe       sudo rm *.dll    3) 将解压文件夹下列文件复制到原来安装jexus文件夹:       jws.exe...   2) 把解压所得到文件及文件夹全部复制或移动到 /etc/jws 这个文件夹       如: sudo mv * /usr/jexus/    3) 将 jws.regsvr、jws.start...如果是全新安装,请首先建立一个默认网站文件夹:/var/www/default     然后在Jexus工作文件夹(/usr/jexus/)执行jws.start命令(需要root身份),启动jexus

1.1K50

【Unity逆向】玩游戏遇到“飞天锁血”是怎么实现

只有运行时候才会编译 优点: 打包速度快 只是一个翻译官 翻译为中间代码 支持运行时代码执行 必须将代码发布成托管程序集(.dllMono VM移植非常麻烦,python,java都是解释型语言...,都要通过虚拟机来做事,来调用虚拟机函数,每个平台都要重新翻译成哪个平台机器语言,来匹配 Mono版本授权受限,很多C#特性无法使用 后期收费了 因此后期Unity发布了il2CPP Mono...打包目录结构 存在 游戏名_Data文件夹 逆向流程 开发人员代码被编译打包到 游戏名_Data\Managed\Assembly-CSharp.dll里面 常规C#逆向流程 使用dnSpy对该DLL...构建更慢 程序效率高 多平台移植方便 打包目录结构 存在UnityPlayer.dll 存在 游戏名_Data 文件夹 没有Mono文件夹 游戏名_Data目录下有il2cpp_data文件夹 逆向流程...相比Mono更复杂些 GameAssembly.dll一般很大,得至少五十兆,非常大,所有代码都在里面 用dumper工具回复符号 用IDA对dll反编译 分析核心逻辑实现代码 根据分析结果进行

1K50

杂谈 System.Drawing.Common 跨平台性(关键词:libgdiplus .NET Core Mono Win32 Linux ……)

它从 API 级别就分离出 .NET Framework 不跨平台部分,然后把它们从 .NET 核心仓库移除,换成 .NET 扩展框架(如 WPF / Windows Forms)。...例如是否会导致同一个类型分属两个不同程序集导致分别依赖两个不同程序集不同代码之前无法传递 System.Drawing 命名空间中参数呢?...另外,NuGet 包 runtimes 文件夹里面包含了前面我们说到 win 和 unix 不同实现版本 System.Drawing.Common.dll。...另外,这里还要额外说一下 Unity 支持情况。 Unity 有两种不同 C# 脚本后端可选:Mono 和 IL2CPP。...表“❌相当于没引用”指的是引用此 dll 相当于没引用 dll,安装此包相当于没有引用此包: 1 2 3 4 5 // .NET 4.x Api 兼容级别报此错误 The type name '

1.1K60

在Ubuntu配置ASP.NET站点

mono是.NET在Linux等非Windows平台上第三方实现,借助它就可以实现.NET跨平台应用。...更让人鼓舞是当前最为流行桌面Linux系统Ubuntu已经集成了mono运行环境,只要手上有一个.net应用程序,拷贝到Ubuntu,然后就可以运行了。...实际上,在Ubuntu,已经有一些应用程序是用C#完成,例如附件便签程序Tomboy就是用C#,打开Tomboy文件目录,就会发现很多在Windows中常见dll程序集,所以,跨平台也不是不可以...普通.NET exe程序在Ubuntu是不可识别的,双击exe自然不会运行该程序,需要在终端用mono命令启动exe程序就可以了。...下载完成后可以使用tar命令或鼠标双击方式解压文件。解压以后可以看到其中配置文件,cs源码文件,帮助文件,其中test文件夹是用于测试web站点。        然后是编译XSP程序。

1.6K20

Unity3D DLL加密

Unity3D打包android应用程序时,如果不对DLL加密,很容易被反编译,导致代码泄露。通常做法是通过加密DLL或者对代码进行混淆。...本文所要探讨是通过加密方式来对DLL进行保护,并详细记录加密操作过程。...加载,所以需要在libmono.so对加密过Assembly-CSharp.dll进行解密,幸好unity提供了mono代码可以进行编译修改。...,配置方法有很多,可以修改/etc/profile或者~/.bashrc,这里直接shell下添加临时环境变量,不添加后面编mono时会报找不到NDK        export ANDROID_NDK_ROOT.../下 3)cmd命令行下,进入apktool目录,执行apktool d 1.apk进行解包,会在apktool下生成与包名相同文件夹1/ 4) 将加密过Assembly-CSharp.dll覆盖1

2.2K40

OSX 上初步尝试 asp.net 5

当然你也可以使用传统 CLR 来作为运行时(现在称为 full .NET CLR)。 Roslyn 使用 C# C# 编译器,更加开放和组件化,主要是帮你编译你写代码以及第三方依赖代码。...并且目测会在代码补全和代码重构方面发力,因为微软并没有打算把 Virtual Studio 给 Linux 和 OSX 用户用,C# 这种静态类型语言毕竟还是比较依赖代码补齐。...corefx coreclr 只是一个 CLR,C# 字符串等基本功能还是使用 C# 编写,还有很多其它基础库,这部分代码就作为 corefx 存在了,并且绝大部分代码都是跨平台。...这样不管你代码是运行在 coreclr 还是 mono 环境,兼容性都会有一定保证。...asp.net 增加 Controller 一类工作也是很繁琐,之前 Virtual Studio 可以帮助我们做这些工作。

84870

分享自制C#和VB Code互转工具

尤其面对旧项目升级或者才考其他网上开源资源时候,总会很麻烦。于是诞生了很多VB和C#互转工具,例如DeveloperfusionCsharpToVB工具。...不过那是在线版本,可能受到网络条件限制,反应很慢或者干脆由于禁网无法访问。综上,我准备自己写一个C#和VB互转工具,方便大家使用。 工具简介 该工具主要针对文件夹,进行批量转换。...它能把SourceDirectory文件夹以及所有子文件夹C#和VB文件,按照原有目录结构转换后,保存到TargetDirectory。...使用第三方库 该工具中使用是开源项目 库,分别引用了 ICSharpCode.Core.dll ICSharpCode.NRefactory.dll ICSharpCode.SharpDevelop.Dom.dll...log4net.dll Mono.Cecil.dll 使用方法 该库用法如下: using ICSharpCode.SharpDevelop.Dom.NRefactoryResolver; CodeSnippetConverter

88690

Mono PInvoke :DLLImport

Mono 初衷是为了吸引更多Windows .Net程序员来加入Linux平台开发。但在Linux世界C语言依然是主流。...:System.Runtime.InteropServices 当执行这段代码时候,Mono Runtime 会去尝试调用本地系统libc.sogetpid(),如果找到就执行getpid()....linux上DLLImport搜索共享库顺序如下: 1、/lib,比如在/usr/lib 2、有绝大部分库文件都被缓存在 /etc/ld.so.cache,该文件由 /etc/ld.so.conf...编辑后并运行命令ldconfig产生.那么你可以在ld.so.conf添加你需要so文件目录之后运行ldconfig。...3、被用户环境变量LD_LIBRARY_PATH 标识目录 相关文章: 如何利用C生成.so供Mono调用 C# DLLImport C++ dll 几点注意事项 Linux下给C#增加CopyMemory

1.8K100

emgucv教程(iis配置步骤)

它运行在.NET兼容编程语言下调用OpenCV函数,如C#、VB、VC++等。同时这个封装库可以在Mono下编译和在Linux / Mac OS X上运行。...(记住文件夹位置,最好路径是没有中文,比如:D:emgucv) 第三步:配置EmguCv 配置流程如下。...第四步:使用Emgu Cv 打开vs2015,创建一个c#窗体应用程序。...在解决方案引用添加引用 图中所选三个.dll最常用.dll 【加载Emgu.Cv.UI.dll控件】 (【工具】→【选择工具箱】→【单击选择工具箱】→【在.NET Framework组件栏单击浏览...】→【选择安装路径下bin文件夹Emgu.CV.UI.dll】→【单击确定进行添加】→【添加完成在工具箱中就有所选择工具】。

2.3K30

dotnet 修复在 Linux 上使用 SkiaSharp 提示找不到 libSkiaSharp 库

本文告诉大家如何简单修复在 Linux 上使用 SkiaSharp 提示找不到 libSkiaSharp 库 我应用在 Windows 上跑好好,放在 Linux 上一运行就炸掉了,异常内容如下...System.TypeInitializationException: The type initializer for 'SkiaSharp.SKColorSpace' threw an exception. ---> System.DllNotFoundException...版本众多,大家都很喜欢自己定义,这让 SkiaSharp 不知道包含哪个版本才是能让大家都开心,如官方文档 所讲故事 解决方法是再安装上 SkiaSharp.NativeAssets.Linux...,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文代码 git init git remote add origin https://gitee.com...git pull origin 668b2acf5749a1e190733882ae49ad105877cb55 获取代码之后,进入 SkiaSharp/KebeninegeeWaljelluhi 文件夹

3.7K20

【Unity游戏开发】浅谈Unity游戏开发单元测试

众所周知,Unity.NET是基于 Mono ,因为一些原因,导致Mono并不是包含了所有微软原生.NET库内容。...也就是说有些你在Winform、WPF等工程中用到类库并不能完美地在Mono中使用,这也就是为什么会发生上述找不到单元测试模块问题。...2.把这个DLL手动拷贝到Unity工程,并在我们解决方案引用它。...在我们Unity项目中新建一个名为 “Plugins” 文件夹,然后把上面的Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll 拷贝到该文件夹下...一般在传统C#项目中,我们引用某个DLL时候,都是通过在VS解决方案引用项目上右键 -> 添加新引用来导入某个DLL,但是在Unity项目中,我们在引用选项上右键却发现没有这个选项。

2.7K20

微软官方 NuGet 包是如何做到同时兼容新旧框架?例如 System.ValueTuple 是如何做到在新旧版本框架都能使用

并且,这些包即便安装到本来就有此类型新框架上也能正常运行而不会出现多处类型定义问题。 这些类型是如何做到框架内定义了,包里也定义了,却能像同一个类型一样作为参数和返回值传递?...语法支持 C# 从 7.0 开始支持元组类型语法,即可以写出这样代码: 1 var (a, b) = Foo(); 关于此新增功能,可以前往这里查看: C# 7.0 新增功能 - C# 指南..._,这个文件出现仅仅是为了能让 zip 里面有一个对应框架文件夹。而 zip 对空文件夹支持并不好,所以加一个这样文件可以避免文件夹消失,造成 NuGet 认为不支持这样框架。...结论 框架(.NET)和语言(C#)现在已是独立升级了,因此在使用旧框架情况下,也可以使用新语言特性; 旧框架使用是完整功能 dll(由 NuGet 包来决定使用正确 dll); 新框架使用是...TypeForwardedTo 特性作为垫片,重定向类型到新框架(由 NuGet 包来决定使用正确 dll)。

29110
领券