在Visual Studio 2017中使Console.WriteLine在.NET标准库中工作时遇到问题

时间:2017-10-06 09:17:37

标签: visual-studio-2017

您可以在.NET标准库项目中使用Console.Write,将Windows控制台项目作为“驱动程序”(具有调用库的主函数)吗?换句话说,这是一个我在解决方案中的库,其中有一个Windows控制台应用程序引用.NET标准库项目,当它到达Console.WriteLine(“Hello World”)时它会变得很糟糕;言。

我得到的错误是System.IO.FileNotFoundException:

无法加载文件或程序集'System.Console,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一。系统找不到指定的文件。

对于司机:

目标框架是:.NET 4.6.1 输出类型为:控制台

对于图书馆: 目标是.NET Standard 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();
    }

1 个答案:

答案 0 :(得分:0)

行。愚蠢的错误。我最初对于图书馆的目标框架 .NET标准 ,而且这与我所拥有的不匹配对于 可执行文件的目标框架 (驱动程序); .NET Framework 。所以对我来说,.NET标准库并不是正确的目标框架。猜测,库和控制台应用程序驱动程序必须匹配,至少在这种情况下。如果混合目标框架,Visual Studio将不会警告您。 我将Library的目标框架从.NET Standard更改为.NET Framework 。现在它有效!具有.NET Framework 4.6.1的控制台应用程序是否应该引用具有.NET Standard 1.4的库?我不知道......很想知道。