【发布时间】:2016-06-08 06:22:28
【问题描述】:
我在运行时遇到了这个异常
System.IO.File.WriteAllText(@"\\somenetworklocation\OutputCheck.txt", string.Join(Environment.NewLine, _info.ToArray()));
昨天还不错。该行由tfs build 中的custum activity 运行,它仅用于测试目的,无论我需要它工作。
- 它保存到的驱动器上有空间。
-
TFS Server可以访问该驱动器。 - 在没有对软件进行任何修改的情况下,我开始收到此错误。
- 它保存到的驱动器和 tfs 服务器上有可用空间。
更新:它在 7 次不成功的构建后再次开始工作。任何想法为什么会发生这种情况高度赞赏。
【问题讨论】:
-
也许您的交换文件所在的驱动器上没有足够的空间。检查您的内存消耗。为什么需要额外的数组。如果您使用的是 .NET4,则可以使用
System.IO.File.WriteAllText(@"\\somenetworklocation\OutputCheck.txt", string.Join(Environment.NewLine, _info));。也许您应该使用StreamWriter并一行接一行地编写。 -
_info 是一个列表
参考 1 和 4 的空间。并检查我即将发布的更新。 -
您刚才提到文件所在的驱动器上有足够的空间,而不是交换文件所在的驱动器上有足够的空间。此外,如果
_info是一个列表,ToArray会无缘无故地创建一个大小相同的数组。甚至列表本身也可能是多余的,您可以循环列表的任何来源,以逐行写入文件。 -
对不起,我误会了,该驱动器上还有超过 30GB 的空空间。
-
此列表
的目的是在测试二进制文件运行期间收集数据。此二进制文件由自定义活动运行。完成所有测试后,我不需要那个超级简单的日志。我使用它的唯一原因是因为添加到列表非常清晰且简单,因此将其保存到文件中。如果您可以分享一些将创建 txt 并在一行中替换旧的和愚蠢的文本的衬里,我非常乐意尝试一下。