2017-08-21 34 views
-1

我通过从.NET Framework 4.6.2从CodeProject下载的Windows应用程序转换代码来创建类库。类库(DLL)具有.NETStandard 1.6的目标框架。System.IO StreamWriter类在Windows应用程序和类Libarary应用程序之间不同

我遇到了System.IO StreamWriter类在两个应用程序之间不一致的问题。下图显示了DLL项目中的fileName和outputFile.Close()的红线错误。同样的错误不会在Windows应用程序:

fileName is of type String and outputFile is of type StreamWriter

发生使用Visual Studio的后“转到Definiton”选项,我发现,在System.IO为Windows应用程序的StreamWriter的版本,同时具备1)一个接受字符串参数的构造函数,以及2)Close()方法。 DLL的StreamWriter版本中缺少这两个功能。

所以我的问题是“我可以以某种方式”修复“我的DLL项目属性,以便它可以使用C#代码而不用更改,或者我必须修改代码?”。

+0

我不同意这个问题是一个现有问题的确切副本。我的问题是关于修复属性或修复代码。在做了更多的研究和测试后,我发现我可能为我的DLL应用程序选择了错误的目标框架。如果我选择了.NET Framework 4.6.2而不是.NETStandard 1.6,那么移植后的代码会起作用。名为“Vnext Argument 1:无法从'字符串'转换为'System.IO.Stream'”的帖子是关于“框架中缺少的东西”。我可能只是完全选择了错误的框架。更多的测试会告诉你。 –

+0

所以,的确,问题是我的类库项目选择的框架。通过将其更改为.NET Framework 4.6.2,我无需修改即可从Windows应用程序移植代码。我仍然不同意这篇文章是重复的。 –

回答

0

你必须修改你的代码。 System.IO.StreamWriter.ctor(string)System.IO.StreamWriter.Close()不是.NET Standard 1.6 API的一部分。

+0

或者选择一个不同的框架,我想。 –

+0

更改框架解决了问题。看到我上面的评论。 –

相关问题