小编Ste*_*eed的帖子

如何通过FileStream写入文件时锁定文件?

我试图找出如何写一个二进制文件与FileStreamBinaryWriter,并保持锁定为读而我写的文件.我特别不希望其他应用程序/进程能够在写入时从中读取.

//code to declare ba as a byte array

//dpath is the path to the file

FileStream BinaryFile = new FileStream(dpath, FileMode.Create, FileAccess.Write);

BinaryWriter Writer = new BinaryWriter(BinaryFile);

Writer.Write(ba);

Writer.Close();

BinaryFile.Dispose();
Run Code Online (Sandbox Code Playgroud)

现在问题是在写入期间其他应用程序可以打开文件,这在我当前的应用程序中是不可取的.在FileStream有锁的方法,但锁住写,而不是阅读,这样就不会帮我.

c# io

10
推荐指数
1
解决办法
4434
查看次数

构建错误,警告MSB3258

我最近使用vs2010 pro sp1将我的解决方案从我的主开发机器移到了新机器上.除了无法构建之外,设置应该是相同的.

它给出的错误就像

c:\ Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9):警告MSB3258:主要参考"C:\ rep\hms\trunk\ikassystemv3\ikasDAL\bin\Debug\ikasDAL.dll"无法解析,因为它对.NET Framework程序集具有间接依赖性"mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089"其版本高于版本"4.0.0.0"当前目标框架中的"2.0.0.0".

但是,所有相关的库都设置为使用.net 2框架,我需要这样,否则它会破坏使用它们的东西.

但是由于某种原因,它似乎认为我的.net 2系统库以某种方式引用.net 4的东西.所有引用的库都是.net 2

你可以在这里看到我的构建输出

http://tinyurl.com/bnugru4

c# msbuild build-error

6
推荐指数
1
解决办法
4519
查看次数

vs2010 Debug.WriteLine停止工作

我有这个问题一直给我带来悲伤的一天,然后一些.
基本上我的Debug.WriteLine工作了一点,然后神奇地停止给出输出.调试器仍在工作,因为我可以在行上放置一个断点,它会中断,我可以跳过Debug.WriteLine并观察它不输出.

现在我已经检查了我能想到的一切.我曾经尝试过各种各样的帖子

Debug.Writeline不打印任何东西

Debug.Writeline停止工作

Visual Studio 2010突然停止显示调试输出

但没有任何效果.澄清

  • 我正在使用vs2010 pro sp1.
  • 这些项目正在使用.net4框架.
  • 我有调试常量集.
  • 调试器仍然附加,因为我可以设置断点并且它们被命中.
  • 这两个项目都设置为在"任何CPU"下构建(我尝试使用X86并没有帮助)
  • 我在Windows 7 x64上运行

在完成所有建议之后,我没有修复.上述帖子中没有一个真正得到回答.

那么如何解决这个问题呢?

我以为我会创建一个单独的解决方案来重现这个问题.

您可以下载我的解决方案,在此处重现该错误https://drive.google.com/uc?export=download&confirm=&id=0B0SLafLeQj5GOGxORThMWWhYV28

所以我制作了2个Windows应用程序,并将它们设置为同时启动.在每个应用程序中,我启动一个线程,在线程中我做一个Debug.WriteLine

它似乎得到某种死锁并停止写输出.这似乎是Visual Studio中的一个错误,我对此感到非常惊讶.我是否必须相信,有两个项目的线程同时执行Debug.WriteLine是不可能的?

再一次,我非常需要一种方法来解决这个问题并且仍然获得调试输出.哦,我也尝试过将输出重定向到即时窗口的选项,但也没有成功.

debugging multithreading visual-studio-2010

2
推荐指数
2
解决办法
876
查看次数