如何在 Mono 中将 dll 加载到 C# 并运行它

如何在 Mono 中将 dll 加载到 C# 并运行它

我有一些在 Windows 中编写的 Selenium 测试用例。现在我想在 Ubuntu 中运行它们。我找到了一种使用以下代码链接我的 C# 程序和 selenium dll 的方法解决方案,但我收到以下错误:

Unhandled Exception: System.IO.FileNotFoundException:   
Could not load file or assembly 'WebDriver, Version=3.14.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.   
File name: 'WebDriver, Version=3.14.0.0, Culture=neutral,   
PublicKeyToken=null' [ERROR] FATAL UNHANDLED EXCEPTION:  
System.IO.FileNotFoundException:  
Could not load file or assembly 'WebDriver, Version=3.14.0.0, Culture=neutral, PublicKeyToken=nullure=neutral, PublicKeyToken=null

C#:

using System;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;

namespace SelTest {
    class TestOne {
        public static void Main(string[] args) {
            IWebDriver driver = new ChromeDriver();
            driver.Navigate().GoToUrl("https://www.google.com");
            driver.Quit();
        }
    }
}

编译运行所用命令:

mcs -r:/home/local/prasanth/test/dist/lib/net45/WebDriver.dll SelTest.cs; ./SelTest.exe

我的单声道版本:6.6.0.161

selenium 库是从这里

答案1

这个问题最终通过在我的 .bashrc 文件中设置 MONO_PATH 环境变量得到解决。

文档说:

在运行时,Mono 会在三个地方查找运行程序所需的程序集。它首先搜索执行程序集的位置。如果您的应用程序使用运行时未提供的程序集,您可以将它们全部放在同一目录中,以便 Mono 可以找到它们。如果在那里找不到所需的程序集,Mono 会搜索 MONO_PATH 环境变量。

在我的.bashrc中:export MONO_PATH=/home/local/prasanth/test/dist/lib/net45/

我添加了这一行已编译我的 .bashrc 文件。现在我的应用程序运行没有任何问题。

相关内容