Tag: visual studio 2008

Microsoft Visual C#2008减少加载的dll数

如何在Visual C#2008 Express Edition中调试时减少加载的dll数量? 在调试器中运行可视化C#项目时,由于2GB虚拟地址空间的碎片,我得到OutOfMemoryException,并且我们假设加载的dll可能是碎片的原因。 Brian Rasmussen,你结识了我的一天! 🙂 他的“禁用视觉工作室托管过程”的提议解决了这个问题。 (有关更多信息,请参阅下面的问题开发历史) 嗨,我需要两个大的int数组加载到内存中,每个都有大约1.2亿个元素(~470MB),并且都在一个Visual C#项目中。 当我试图实例化第二个数组时,我得到一个OutOfMemoryException。 我确实有足够的总可用内存,在进行网络搜索后,我认为我的问题是我的系统上没有足够大的连续空闲内存块。 但! – 当我只在一个Visual C#实例中实例化一个数组,然后打开另一个Visual C#实例时,第二个实例可以实例化一个470MB的数组。 (编辑说明:在上面的段落中,我的意思是在Visual C#的调试器中运行它) 任务管理器会像您期望的那样显示相应的内存使用量增加。 因此,整个系统上没有足够的连续内存块不是问题。 然后我尝试运行一个编译的可执行文件,实例化两个数组也工作(内存使用量1GB) 摘要: Visual C#中的OutOfMemoryException使用两个大的int数组,但运行已编译的exe工作(mem使用1GB)和两个独立的Visual C#实例能够为我的大数组找到两个足够大的连续内存块,但我需要一个Visual C#实例来能够提供记忆。 更新: 首先要特别感谢nobugz和Brian Rasmussen,我认为他们的预测是“过程中2GB虚拟地址空间的碎片化”是问题所在。 按照他们的建议我使用VMMap和listdlls进行短暂的业余分析,我得到: * 21个dll列出的“独立”-exe。 (工作和使用1GB内存的那个。) *列出了vshost.exe版本的58个dll。 (调试时运行的版本,抛出exception,仅使用500MB) VMMap向我展示了调试器版本最大的可用内存块为262,175,167,155,108MB。 所以VMMap说没有连续的500MB块,根据有关空闲块的信息,我添加了~9个较小的int-array,这些内存使用量增加了超过1,2GB,实际上确实有效。 所以我会说,我们可以称之为“2GB虚拟地址空间碎片”有罪。 从listdll-output我创建了一个小的电子表格,其中hex数转换为十进制以检查dll之间的空闲区域,我确实为独立版本(21)dll找到了大的可用空间,但没有找到vshost-debugger-version(58 dll文件)。 我并没有声称之间没有任何其他东西,我不确定我在那里做什么是有道理的,但它似乎与VMMaps分析一致,似乎单独的dll已经破坏了内存调试器版本。 因此,如果我能够减少调试器使用的dll数量,也许可以找到解决方案。 这可能吗? 2.如果是,我该怎么做?

如何将类修饰为代码覆盖率不可测试?

背景:Visual Studio 2008,C#,。Net 3.5。 我有许多实用程序类,它们不是单元可测试的。 这主要是因为它们与资源(例如数据库,文件等)交互。 有没有办法可以装饰这些类,以便Visual Studio代码覆盖引擎会忽略它们,所以不降低代码覆盖百分比?

调试器Visualizer和“类型未标记为可序列化”

我正在尝试创建一个调试器可视化器,它将显示任何Control控件层次结构。 它已经完成,但我得到了exception“类型未标记为可序列化” 。 我该如何克服这个问题? Control是.NET Windows Forms框架类型,我无法将其标记为可序列化。

Coderush和resharper,他们一起工作吗?

有没有人有使用它们的经验? 它的效果如何? 还是太悲伤了?

初学者的报告查看器教程?

我正在使用VSTS 2008 + C#+ .Net 3.5 + SQL Server 2008 + ASP.Net + IIS 7来开发Web应用程序。 任何快速且易于学习的报表查看器教程 – 我想根据SQL Server 2008中的数据生成报表。基本的设计和实现function很好,此时无需学习有关报表审阅者的高级主题。

调试DLL的发行版本(带PDB文件)

如果我有一个DLL(以发布模式构建)和相应的PDB文件,是否可以调试(步入)该DLL中包含的类/方法? 如果是,那么所需的步骤/配置是什么(例如,放置PDB文件的位置)? 编辑: 如果将PDB文件与DLL放在同一位置(在简单控制台测试应用程序的bin / debug目录中)。 我可以看到DLL的符号被加载(在“输出”窗口中,也在“模块”窗口中),但我仍然无法进入该DLL的方法。 这可能是编译器优化的结果(正如Michael在他的回答中所描述的那样)?

是否有Visual Studio的Breakpoint插件?

背景 在一些足够大的应用程序中,您可以花更多的时间来确定如何深入到各个层,而不是实际调试:我现在正在使用的一个软件就是这种情况。 除了关注问题的布局/分离之外,最好有一个断点插件,允许您根据正在处理的Bugzilla / Jira / Fogbugz / SVN缺陷条目加载断点。 题 是否存在Visual Studio的任何插件,允许您将切换的断点“保存”到文件中,允许您根据正在处理的错误加载各种断点? 作为该问题的附属物; 如果没有任何这样的插件,有人能指出我为Visual Studio创建插件的’好’(非常主观的术语,但在这种情况下,我的意思是解释性和有用的)资源?

Visual Studio:调试时重置用户设置

在C#Winforms-App中,我存储了几个用户设置。 每次从Visual Studio 2008开始调试项目时,是否有一种简单的方法可以清除这些设置? 否则,它始终使用上次调试会话中的设置启动。

WCF中的mex绑定错误

我正在使用VSTS 2008 + C#+ .NET 3.0。 我正在使用自托管的WCF服务。 执行以下语句时,会出现以下“未找到绑定”错误。 我已经发布了我的整个app.config文件,任何想法有什么问题? ServiceHost host = new ServiceHost(typeof(MyWCFService)); 错误信息: 无法通过绑定MetadataExchangeHttpBinding找到与端点的方案http匹配的基址。 注册的基地址方案是[https]。 完整的app.config:

点击链接事件webbrowser c#?

我想在我的winform中通过Web浏览器控件在IE浏览器中打开一个链接…当用户点击它在Internet Explorer浏览器中打开的链接时,webbrowser控件将导航到一个页面。