Tag: visual studio

从内存中删除项目/页面/用户控件

我做了一个Windows手机应用程序,不幸的是有一些内存泄漏,因为页面没有正确删除。 通过使用答案解决了这个问题: 删除页面Windows手机说明: protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) { while (App.RootFrame.RemoveBackEntry() != null) ; //line if you navigate without backkey base.OnNavigatedTo(e); this.Dispatcher.BeginInvoke(() => { GC.Collect(); GC.WaitForPendingFinalizers(); this.Dispatcher.BeginInvoke(() => { GC.Collect(); GC.WaitForPendingFinalizers(); this.Dispatcher.BeginInvoke(() => { GC.Collect(); GC.WaitForPendingFinalizers(); }); }); } 这从分析器中删除了页面引用。 但是在导航时记忆仍然增加了一些。 并且增加记忆的来源并不明显。 因此,我尝试引入一个空白项目并导航到星空导航,如下所示: 这样可以移除超过20 mb的视觉效果和其他元素。 所以这是重要的一步。 因此,我希望将function分解到不同的项目中,以消除不同function之间的任何联系,并保持较低的内存使用率。 最终得到以下结构: 网络服务 MainProject SecondaryProject PortableLibrary 我使用Portable Library在所有项目之间共享模型。 这影响了每次导航到新项目时,旧项目中的所有内容都被清除,即每个项目只有一个元素存在,主要内存改进。 […]

调试符号未加载

我正在尝试配置visual studio,以便在调试时让我进入.net框架源代码。 我在Win8CP上尝试过Visual Web-Developer-Express-2010和Visual-Studio-2011-Express-For-Web以及Visual-Studio-2011-Express-For-Web,我遇到了同样的问题。 。 我已经阅读了很多关于如何设置它的教程以及我认为正确的设置。 调试常规设置 – 还 – 调试符号设置 – 我试过这两个符号服务器。 当我单击Load all Symbols这是我得到的符号加载失败的输出 – 大型版本链接 如果我将代码运行到断点,请右键单击并选择要执行的特定方法,如下所示 – 大型版链接 我得到这个标签 – 大型版本链接 如果我查看我的SymbolCache文件夹,只有一个包含这些内容的FailedLoads文件夹 – 大型版本链接 我的项目处于调试模式。 我也试过以管理员身份运行VS. 我可以完全控制SymbolCache目录。 我在家庭网络上,可以完全访问我的互联网连接。 为什么这不起作用?

键盘快捷键将光标移动到Visual Studio中的上一个编辑位置

在Visual Studio中,是否有键盘快捷键导航(移动光标)到最后编辑的位置(如PyCharm的Ctrl + Shift + Backspace )? CTRL + – shourtcut移动到最后一个位置(不是最后编辑的位置),这对我来说不太有用。

将间接引用的程序集复制到输出目录 – 缺少程序集

可能重复: Copy-local如何工作? 我有以下情况: 有一个名为OLAF.Tools的项目,该项目引用C:\ Program Files \ SQLXML 4.0 \ bin \ Microsoft.Data.SqlXml.dll中的Microsoft.Data.SqlXml。 Reference Copy Local属性设置为True。 当我在bin目录中构建该项目时,我可以看到OLAF.Tools.dll和Microsoft.Data.SqlXml.dll 有一个名为OLAF.Generator的控制台应用程序,该应用程序引用了OLAF.Tools(我使用Project选项卡添加了引用)。 当我在bin目录中构建该应用程序时,我只能看到OLAF.Generator.exe和OLAF.Tools.dll – 没有Microsoft.Data.SqlXml.dll,是什么让我感到满意。 另一个奇怪的事情是,即使该DLL丢失,应用程序也正常执行。 所以我的问题是: 为什么Microsoft.Data.SqlXml.dll没有复制到OLAF.Generator控制台应用程序的bin文件夹? 应用程序如何解析可以找到Microsoft.Data.SqlXml.dll的目录? 谢谢你,帕维尔 编辑1 :(在Marc Gravell的回应之后) @Marc Gravell :你的回答让我深思熟虑,因为我可以发誓我总能在主应用程序的bin目录中看到间接依赖的程序集。 恕我直言,我不同意你的意见 – 尽所能尊重:) 当然,引用不是物理级联的(我们正在谈论与类,接口等的强关系) – 这正是我在构建OLAF.Tools库时想要实现的。 该库提供了一个抽象级别,它包含工厂,一个工厂接受作为参数字符串并返回接口。 该接口的一个特定实现使用Microsoft.Data.SqlXml组件。 因此,OLAF.Generator使用位于OLAF.Tools中的接口,但不知道Microsoft.Data.SqlXml中的组件。 除此之外(我想我们都知道我试图在前一段中解释的内容),在构建应用程序时,应复制依赖程序集(如果Copy Local设置为TRUE)。 我刚刚编写了示例应用程序,Project B lib引用了Project A lib,而Project C(控制台应用程序)引用了Project B.在Project C的bin目录中,我可以看到所有:Project A.dll,Project B.dll&Project C.exe。 因此,在讨论的场景中,Microsoft.Data.SqlXml不会在OLAF.Generator […]

很奇怪:无法找到C#类型或命名空间名称 – 构建成功

在VS2012 IDE中打开时,我的项目中出现了一个奇怪的错误。 在我使用另一个引用项目的地方突然说”Type or Namespace name could not be found” 。 并且通过“说”,我的意思是当我将鼠标hover在它上面时,它的文字用红色加下划线并带有错误。 intellisense不适用于该代码。 但是(这里是奇怪的部分),错误没有显示在错误控制台中,项目构建并运行正常。 我甚至可以调试并逐步完成代码,它工作得非常好。 因此在运行时项目被引用很好,但在设计时IDE无法找到它。 这种情况在过去的两周里一直有效,然后才突然变得有些疯狂。 这真的很烦人,因为我在没有intellisense的情况下编写垃圾! 有没有人见过这样的东西或有任何建议?

C#:Visual Studio 2008是否有工具显示一段代码可以引发哪些exception?

例如,如果我打开一个文件,我知道可能发生FileNotFoundException,或者如果我将String转换为double,则可能发生FormatException。 显然,如果一个方法同时做到,两者都可以引发。 有没有办法快速查看方法引发的所有可能的exception? 自己跟踪它似乎容易出错。

如何使代码约定忽略特定的程序集引用?

我正在扩展Visual Studio。 在代码中我使用代码约定来进行断言和检查。 我将警告选项级别设置为高。 我想要做的是保持警告级别,同时忽略对EnvDTE引用进行的任何检查。 请考虑以下代码示例: public static string GetAbsoluteOutputFolder(EnvDTE.Project project) { if (project == null) throw new ArgumentNullException(“project”); var path = project.ConfigurationManager.ActiveConfiguration.Properties.Item(“OutputPath”).Value.ToString(); //… } 使用我当前的设置,CC将要求我在分配path变量之前添加以下检查: Contract.Assume(project.ConfigurationManager != null); Contract.Assume(project.ConfigurationManager.ActiveConfiguration != null); Contract.Assume(project.ConfigurationManager.ActiveConfiguration.Properties != null); 因此,我想在这里做的是告诉CC“信任”EnvDTE并忽略这些类型及其属性。 我认为“对外部API持乐观态度”CC选项就是为了这个目的而服务的。 事实certificate它没有。 有没有办法让它按照我想要的方式运行, 不需要较低的警告级别 ? 编辑:我想要一个在项目级别工作的解决方案,并且仍然允许执行“常规”检查。

Visual Studio Express 2012不在Release文件夹中构建exe

我编写了一个简单的“Hello World”程序。 程序编译成功,没有任何错误。 我可以在bin文件夹中看到工作的可执行文件。 但该项目的Release文件夹完全是空的。 我不知道是否有任何设置问题或建设中的任何问题。 显然,我没有看到任何错误。

Visual Studio:让调试器意识到函数不会导致“副作用”

我有一个对象,我必须通过观察窗口观看很多次的function输出。 问题是每次我都要按下刷新按钮,因为“这个表达会导致副作用,不会被评估” 。 有没有办法用[DoesNotCauseSideEffects]之类的东西来标记一个函数,这样每当我迈出一步时,手表会自动评估它? 我在VS2008或2010中编写C#。 编辑:该function看起来像这样,并且正如您所看到的那样,不会产生任何副作用。(x,y,z都是双打) public override string ToString() { return “{ ” + x.ToString(“.00”) + “, ” + y.ToString(“.00”) + “, ” + z.ToString(“.00”) + “}”; }

什么是为C#Express用户识别可能重复的代码的好工具?

另请参阅“ 检查重复的VB.NET代码的任何工具?” 我的一个朋友只能访问Visual Studio的Express版本,我正在尝试帮助他重构以消除大量重复。