現在、Monoをテストして、.NET DLLがLinux上のお客様に適しているかどうかを確認しています。私たちのDLLは、Windowsフォームのコンポーネントを提供します。 DebugディレクトリにDLLを配置し、参照を追加し、Windowsフォームから派生したクラスを作成しました。クラスは細かいスタンドアロンで実行していたが、私は、DLLの参照を追加した後、私たちのコンポーネントの1を作成した(インテリセンスがうまく働いていた)、それはコンパイルが、実行されません。プリコンパイルされた.NETアセンブリDLLをMonoで使用していますか?
** (/home/aldwin/testMonoWF/testMonoWF/bin/Debug/testMonoWF.exe:26905): WARNING **: Could not load file or assembly 'OUR.ASSEMBLY, Version=1.0.0.1, Culture=neutral, PublicKeyToken=ATOKEN' or one of its dependencies. Unhandled Exception: System.IO.FileNotFoundException: Could not load file or assembly 'OUR.ASSEMBLY, Version=1.0.0.1, Culture=neutral, PublicKeyToken=ATOKEN' or one of its dependencies. File name: 'OUR.ASSEMBLY, Version=1.0.0.1, Culture=neutral, PublicKeyToken=ATOKEN'
私は、アセンブリのプロパティを見てその公開鍵を持つバージョンです。
これらのDLLを使用する方法はありますか?私は間違って何をしていますか?
EDIT:ニューヨーク近代美術館によると
は、状況には何の関係を持っていないいくつかの[MonoTodo] S以外のファイル、DLLの3人に1つの問題がある。しかし
Calling Method | P/Invoke Method | P/Invoke Library void OnHandleCreated (EventArgs) | int GoText/ComboBoxControl.SetWindowTheme (IntPtr, string, string) | uxtheme.dll
、私は開かれましたVS2008で作成されたサンプルプロジェクトの1つは、DLLへの参照を適切な場所で指し示し、うまくいきました。しかし、私は新しいプロジェクトで作業するための参照を取得することができませんでした。私は何か間違っているのですか?
EDIT 2: わかりやすくするため、既存のWindowsアプリケーションを再作成することは望ましくありません.DLLを使用して新しいアプリケーションを作成する顧客をシミュレートしています。私はそれがdllの問題であるかどうかを確認するためにテストしていました。 VS製アプリケーションがdllを見つけて正常に実行できたので、dllの問題ではないようです。新しいアプリケーションは、VSで作成されたアプリケーションでは呼び出さないものを呼び出すことはありません。
上記のMoMAの詳細を追加しました。しかし、サンプルアプリケーションでうまく動作します。 MonoDevelopで作られた新しく作成されたアプリではない。 – NickAldwin
MonoDevelopでアプリケーションを再作成する必要はありません。 MonoはVisual StudioでコンパイルされたDLLを実行できるはずです。それは、pは/コールを呼び出す作って、それはモノではサポートされないことを意味します - 私はそのComboBoxControl.SetWindowsThemeの呼び出しで見てね。あなたはそれを削除することができますか、またはそのコントロールを使用できませんか? –
私たちはそれを再作成したくありません - 私たちはDLLを使って新しいアプリケーションを作成する顧客をシミュレートしています。私はそれがdllの問題であるかどうかを確認するためにテストしていました。 VS製アプリケーションがdllを見つけて正常に実行できたので、dllの問題ではないようです。新しいアプリケーションは、VSで作成されたアプリケーションでは呼び出さないものを呼び出すことはありません。 – NickAldwin