2017-10-06 11 views
0

.NET標準ライブラリプロジェクトでConsole.Writeを使用できますか?Windowsコンソールプロジェクトを「ドライバ」(Mainライブラリを呼び出す関数)?言い換えれば、これは、.NET標準ライブラリプロジェクトを参照するWindowsコンソールアプリケーションがあり、Console.WriteLine( "Hello World")にヒットしたときにクラップするソリューションであるライブラリです。ステートメント。Visual Studioの.NET標準ライブラリでConsole.WriteLineを動作させる際に問題が発生する

私が手にエラーがSystem.IO.FileNotFoundExceptionです:

は、ファイルまたはアセンブリ「System.Console、バージョン= 4.0.0.0、文化はニュートラル、PublicKeyToken = = b03f5f7f11d50a3a」またはその依存関係の1つをロードできませんでした。 。システムは、指定されたファイルを見つけることができません。ドライバの場合

ターゲットフレームワークがある:.NET 4.6.1 出力タイプがある:ライブラリのコンソール

: 目標は、.NETの標準4.1 出力タイプでは、次のとおりです。クラスライブラリ

メイン中のSO

は、私はこれをやっている:

static void Main(string[] args) 
    { 
     TextToConsole textToConsole = new TextToConsole(); 
     textToConsole.GetTextFromSource(); 
     textToConsole.WriteToDestination(); //gets to here and barfs. 

    } 

WriteToDestination方法次のようになります。

public void WriteToDestination() 
    { 
     Console.WriteLine(textString);//It barfs here and throws an 
             //unhandled exception. 
     Console.ReadLine(); 
    } 
+0

確かに、あなたは.NET標準1.4を意味しました。私はそれのための刷新を得た。私はもはやこれが動作するはずであることをもう認識していないので、System.Consoleタイプをmscorlib.dllに転送するCLRであるべきですが、.NET 4.7では動作しないようです。誰のインストールがうまくいかなかったので、私は自分のマシンを本当に信頼できません。回避策は、System.Console NugetパッケージをEXEプロジェクトに追加することです。それが正しい回避策であるかどうか、うーん、うまくいけない。 –

答えて

0

OK。愚かな間違い。私はもともとライブラリのターゲットフレームワークため.NET標準があったが、それは私が実行可能(ドライバ)のためのターゲットフレームワークのために持っていたものに一致しませんでした。 a .NET Frameworkです。したがって、私にとっては、.NET標準ライブラリは適切なターゲットフレームワークではありませんでした。少なくとも、この場合は、ライブラリとコンソールアプリケーションドライバが一致している必要があります。 Visual Studioは、ターゲットフレームワークを混在させると警告しません。 ライブラリのターゲットフレームワークを.NET Standardから.NET Frameworkに変更しました。今それは動作します! .NET Framework 1.4.1で.NET Framework 1.4でライブラリを参照しているコンソールアプリケーションを使用する必要がありますか?私は知らない...知りたい。

関連する問題