it-swarm-ja.com

C#にDLLをモノラルでロードして実行する方法

Windowsで書かれたSeleniumテストケースがあります。今、私はそれらをUbuntuで実行したいと思います。 this ソリューションを使用して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ライブラリは here からダウンロードされました。

1

これは、私の.bashrcファイルにMONO_PATH環境変数を設定することで最終的に解決されます。

documentation はこう言っています:

実行時に、Monoはプログラムの実行に必要なアセンブリを3つの場所で探します。まず、実行中のアセンブリの場所を検索します。アプリケーションがランタイムによって提供されないアセンブリを使用する場合、Monoがそれらを見つけることができるように、それらをすべて同じディレクトリに配置できます。必要なアセンブリがそこに見つからない場合、MonoはMONO_PATH環境変数を検索します。

私の.bashrc:export MONO_PATH=/home/local/prasanth/test/dist/lib/net45/

この行と compiled my .bashrcファイルを追加しました。これで、アプリケーションは問題なく実行されます。

0