我在创建FileStream以读取与TumblrSharp库一起使用的图像时遇到此编译时错误。
我已尝试通过添加引用添加引用,但没有要添加的System.IO引用。我还尝试手动浏览到.NET4.0框架文件夹,并以这种方式选择DLL,但它不在那里。我的应用程序显示了System.IO的using语句,文件中没有任何带下划线的错误。
The type 'System.IO.Stream' is defined in an assembly that is not referenced.
You must add a reference to assembly 'System.IO, Version=4.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
我还确保我的项目以.NET 4.5为目标,以匹配TumblrSharp PCL的目标。这是代码:
static async void PostImages()
{
var factory = new TumblrClientFactory();
using (var client = factory.Create<TumblrClient>(consumerKey, consumerSecret, new Token(ConsumerToken, ConsumerSecret)))
{
var directory = new DirectoryInfo(imageFolder);
var files = directory.EnumerateFiles();
foreach (var file in files)
{
var image = file.OpenRead();
var bytes = new byte[image.Length];
image.Read(bytes, 0, Convert.ToInt32(image.Length));
var tags = file.Name.Split('$')[1].Split(',');
var post = PostData.CreatePhoto(new[] { new BinaryFile(bytes) }, null, "http://www.example.com");
post.Tags.AddRange(tags);
var result = await client.CreatePostAsync("blogname", post);
if (result.PostId <= 0)
{
break;
}
file.Delete();
}
}
}
对于PCL,我必须手动向web.config的编译部分添加所需程序集的引用,例如:
<add assembly="System.IO, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
这是已知问题。阅读本文:
编译应用程序以针对.NET Framework 4.5.2 时出现错误消息
您应该安装Microsoft.NET Framework 4.5.2 Developer Pack