2017-10-06 47 views
0

您是否可以在.NET標準庫項目中使用Console.Write,並將Windows控制檯項目用作「驅動程序」(具有Main函數調用庫)?換句話說,這是一個庫,我有一個解決方案,其中有一個引用.NET標準庫項目的Windows控制檯應用程序,當它遇到Console.WriteLine(「Hello World」)時會崩潰;聲明。獲取Console.WriteLine在Visual Studio 2017的.NET標準庫中工作時出現問題

我得到的錯誤是一個System.IO.FileNotFoundException:找不到

無法加載文件或程序集「System.Console,版本= 4.0.0.0,文化=中性公鑰= b03f5f7f11d50a3a」或它的一個依賴。該系統找不到指定的文件。

對於駕駛者:

目標框架是:.NET 4.6.1 輸出類型是:控制檯

對於庫: 目標是.NET標準4.1 輸出類型是:類庫

所以我這樣做:

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。我得到了一個repro。我不再知道這應該如何工作,afaik它應該是CLR,它將System.Console類型轉發到mscorlib.dll,但它確實似乎不適用於.NET 4.7。誰的安裝不好,我不能再相信我的機器了。解決方法是將System.Console Nuget包添加到EXE項目,然後工作正常。無論這是否是正確的解決方法,嗯,希望不是。 –

回答

0

好的。愚蠢的錯誤。我有.NET標準在庫的目標框架原來,這不匹配到什麼我不得不爲可執行(驅動器)的目標框架; a .NET Framework。所以對我而言,.NET標準庫並不是正確的目標框架。猜測,庫和控制檯應用程序驅動程序必須匹配,至少在這種情況下。如果您混合使用目標框架,Visual Studio不會警告您。 我將庫的目標框架從.NET標準更改爲.NET Framework。現在它工作了!應該具有.NET Framework 4.6.1的引用具有.NET Standard 1.4的庫的控制檯應用程序是否工作?我不知道......很想知道。

相關問題