2017-05-02 12 views
0

.NET Coreクラスライブラリがあります。現在、netcoreapp1.1をターゲットに設定しています。このライブラリを参照するWindowsサービスがあります。 Windowsサービスは.NET 4.6.2を対象としています。 MYLIBプロジェクトのbin/Debugフォルダ内に発見された.NETコアを使用して生成されたクラスライブラリを使用する

MYLIB.DLLを参照しながら、私は勝利のサービスを開始しようと、私はWindowsのイベントビューアに次のエラーを取得する:

Could not load file or assembly 'System.Runtime, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. 

System.Runtimeはの依存性でありますMyLib.dll。 VS 2017でライブラリを公開すると、NuGetパッケージが作成されます。そのパッケージを私の勝利サービスプロジェクトに追加すると、すべての依存パッケージがインストールされているように見えます。私はこの設定でサービスを開始しようとすると、私は、イベントビューアに次を得る:

Could not load file or assembly 'MyLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format. 

私は、Windowsサービスと図書館間の相互運用性を得ることについてどのように行くかわかりません。

答えて

0

もう少し掘り下げて、少なくとも問題を解決することができました。

私はまだその理由を完全に理解していませんが、私はそれがすべて機能しています。

最初の例外は、対象となるフレームワークの競合が原因であると考えられます。クラスライブラリが.NET Standard 1.4を対象とし、サービスが.NET Framework 4.6.1をターゲットとする場合、すべてがコンパイルされて正常に実行されているようです。

2番目の例外は、ライブラリプロジェクトとサービスプロジェクトの両方を対象とするビルドプラットフォームの不一致が原因であると考えられます。サービスプロジェクトの対象となるプラットフォームをデフォルトのAnyCPUからx64に切り替えると、フォーマット例外が解決されます。

+0

これは本当です。どのフレームワークがどの.NET標準をサポートしているかについての詳細は、https://github.com/dotnet/standard/blob/master/docs/versions.mdを参照してください。 – koelkastfilosoof

関連する問題