小编Rob*_*use的帖子

如何在Visual Studio中导出/导入工具栏

我在Visual Studio中导出我的设置,如果我移动到新机器或有问题,我使用这些备份设置将Visual Studio恢复到我喜欢的方式.它还允许我在我使用的各种机器之间保持一致的开发环境.

这适用于键绑定,语法突出显示,用户工具,除了工具栏位置自定义之外的几乎所有内容.每当我移动到新计算机并恢复设置时,工具栏都不会受到影响.我花了相当多的时间用我的宏,外部工具等设置工具栏,并为他们设置了切入的图标.我讨厌失去所有的工作.

有人知道如何备份和恢复工具栏的位置和自定义吗?如果它不是Visual Studio的一个功能,是否有一个可以完成这项工作的插件?

编辑

如下文所述,在菜单和命令栏自定义,导入和导出设置是应该做的.但是,当我重新导入我以前的设置,我得到

错误1:菜单和命令栏自定义:不支持导入的命令栏设置的版本.已忽略所有命令栏设置.

我试图重新导入的设置在本月早些时候使用相同版本的Visual Studio导出.唯一的区别是我现在运行64位而不是x86.因为设置文件是XML,所以我认为这不会产生任何影响.

有任何想法吗?

settings visual-studio-2008 visual-studio

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

你如何在一个非平凡的应用程序中进行TDD?

我读过很多关于TDD主题的书籍和网站,它们都很有意义,特别是Kent Beck的书.然而,当我尝试自己做TDD时,我发现自己正盯着键盘,想知道如何开始.你使用过程吗?你的思考过程是什么?你如何确定你的第一次测试?

关于这个主题的大部分书籍都很好地描述了TDD是什么,而不是如何在现实世界的非平凡应用中练习 TDD.你是怎么做TDD的?

tdd agile

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

TDD.什么时候继续前进?

在做TDD时,如何判断"这个类/功能的测试是否足够"?

即你什么时候能告诉你已经完成了对所有边缘情况的测试?

tdd

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

InternalsVisibleTo不适用于托管C++

InternalsVisibleTo不适用于我的托管C++项目,但它适用于我的C#项目.任何帮助,将不胜感激.这是一个简化的布局.

项目A - C#,具有我想从B/C访问的内部属性.
项目B - 托管C++.引用一个.
项目Ç - C#,引用一个.

所有项目都使用相同的密钥签名.使用ILDASM或Reflector查看已编译的程序集,表明它们都已正确签名(当我注释掉内部属性用法时).

在Project A的 AssemblyInfo.cs中,我有以下InternalsVisibleTo;

[assembly: InternalsVisibleTo( "B, " +
   "PublicKey=00240000048000009400000006020000002400005253413100040000010001007" +
   "50098646D1C04C2A041FAAF801521A769535DE9A04CD3B4DEDCCBF73D1A6456BF4FE5881451" +
   "0E84983C72D0460B8BA85C52A9CACDC4A0785A08E247C335884C2049ECFE6B2C5E20A18FE4B" +
   "9BFF009ADA232E980D220B3C9586C9C5EE29C29AEE8853DB7BB90CF5A4C704F5244E1A1085C" +
   "4306008535049A0EBB00FE47E78DCB" )]

[assembly: InternalsVisibleTo( "C, " +
   "PublicKey=00240000048000009400000006020000002400005253413100040000010001007" +
   "50098646D1C04C2A041FAAF801521A769535DE9A04CD3B4DEDCCBF73D1A6456BF4FE5881451" +
   "0E84983C72D0460B8BA85C52A9CACDC4A0785A08E247C335884C2049ECFE6B2C5E20A18FE4B" +
   "9BFF009ADA232E980D220B3C9586C9C5EE29C29AEE8853DB7BB90CF5A4C704F5244E1A1085C" +
   "4306008535049A0EBB00FE47E78DCB" )]
Run Code Online (Sandbox Code Playgroud)

钥匙被'切',所以我知道它们是正确的.

当我尝试编译时,A&C编译正常,但项目B失败了

Error 1 error C3767: 'A::MyClass::MyProperty::get': candidate function(s) not accessible c:\Users\<snip>\CppClass.cpp 201 B
Run Code Online (Sandbox Code Playgroud)

MSDN文档说这适用于C++.我需要做一个bug还是别的什么?

是否有另一种方法可以保护财产,使其只能由我签署的集合使用?我知道我可以保护我的所有组件,但是我可以在这样的粒度级别上进行吗?

编辑

根据MSDN中的注释,我将属性更改为以下内容,但仍然无效.

[assembly: InternalsVisibleTo( "B, " + …
Run Code Online (Sandbox Code Playgroud)

.net c++-cli internalsvisibleto

12
推荐指数
1
解决办法
2721
查看次数

右键单击菜单项时如何显示上下文菜单

我正在将一个MFC应用程序移植到.NET WinForms.在MFC应用程序中,您可以右键单击菜单或上下文菜单项,然后显示另一个包含诊断和配置项的上下文菜单.我试图将此功能移植到.NET,但我遇到了麻烦.

我已经能够捕获右键单击,禁用单击底层菜单并在正确的位置弹出上下文菜单,但原始菜单一丢失焦点就会消失.

在MFC中,我们通过使用TPM_RECURSE标志调用TrackPopupMenuEx来显示新的上下文菜单.

ContextMenu和.NET中较新的ContextMenuStrip类只有一个Show方法.有谁知道如何在.NET中这样做?

编辑

我已尝试通过ap/invoke 使用TrackPopupMenuEx,但这限制了您使用ContextMenu而不是在我们的应用程序中看起来不合适的ContextMenuStrip.它仍然无法正常工作.它不适用于新的MenuStripContextMenuStrip.

我还尝试了子类化ToolStripMenuItem以查看是否可以向其添加上下文菜单.这适用于MenuStrip,但ContextMenuStrip仍允许右键单击事件作为点击进行传递.

.net c# contextmenu winforms

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

每当重新加载App域时,如何强制IIS应用程序池重新启动?

我们有一个ASP.NET MVC 4应用程序,它链接到传统的本机代码.问题是这个遗留代码具有在启动时构建的全局静态代码,但由于本机代码对App Domains一无所知,因此在重新加载App Domain时不会重新初始化该代码.在重新启动应用程序池进程之前,这会导致我们的应用程序中出现不正确的行为或崩溃.

因此,我想强制应用程序池在我们的应用程序的App Domain被回收时进行回收.IIS中是否有这样的设置,或者是否正在卸载域时我可以在我的应用程序中调用代码?

关于我的设置的一些信息,

  1. ASP.NET MVC 4应用程序
  2. IIS 7.5,但如果需要,我可以移动到8
  3. 我可以确保每个应用程序池有一个应用程序,因此我不会影响其他应用程序.

更新

根据下面的答案,我连接到AppDomain卸载事件,并使用类似于以下的代码来回收应用程序池.

try
{
   // Find the worker process running us and from that our AppPool
   int pid = Process.GetCurrentProcess().Id;
   var manager = new ServerManager();
   WorkerProcess process = (from p in manager.WorkerProcesses where p.ProcessId == pid select p).FirstOrDefault();

   // From the name, find the AppPool and recycle it
   if ( process != null )
   {
      ApplicationPool pool = (from p in manager.ApplicationPools where p.Name == process.AppPoolName …
Run Code Online (Sandbox Code Playgroud)

asp.net iis appdomain application-pool asp.net-mvc-4

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

Ruby存在C1代码覆盖率分析吗?

我目前正在使用Rcov为我正在开发的rails项目获取C0代码覆盖率分析.

然而,这些结果实际上毫无意义 - 根据rcov,我有100%的覆盖率(因为它只涵盖了C0分析),而且我几乎没有为目前存在的功能写出一半的测试用例.

我已经习惯了Visual Studio 2008 Team中代码覆盖的有用结果,它具有C1覆盖率.是否有任何工具可以为ruby提供类似的覆盖范围?

ruby tdd unit-testing code-coverage ruby-on-rails

9
推荐指数
1
解决办法
2546
查看次数

在Visual Studio中按Nunit的类别属性运行/分组测试

我试图在我的Visual Studio Profession 2015中使用NUnit的Category属性.但是该属性似乎没有在Test Explorer中对测试进行分类.

[Test]
[Category("ValidLogins")]
Run Code Online (Sandbox Code Playgroud)

我试过这个:

[Test, Category("Login")]
Run Code Online (Sandbox Code Playgroud)

但即使这样也行不通.任何建议?

c# nunit visual-studio

9
推荐指数
1
解决办法
4813
查看次数

如何异步获取TextBox的AutoComplete数据?

我们的WinForms应用程序延迟加载数据以自动完成文本框.伪代码如下:

  1. TextBox中的用户类型
  2. 在键入暂停时,确定是否需要获取自动完成数据
  3. 在工作线程中,联系服务器并获取数据
  4. 调用回UI线程
  5. textBox.AutoCompleteCustomSource = fetchedAutoCompleteStringCollection;
  6. 强制文本框下拉自动完成下拉菜单.

我目前在#6遇到麻烦.作为一个黑客,我做以下工作来模拟一个有效的按键,但它并不适用于所有情况.

     // This is a hack, but the only way that I have found to get the autocomplete
     // to drop down once the data is returned.
     textBox.SelectionStart = textBox.Text.Length;
     textBox.SelectionLength = 0;
     SendKeys.Send( " {BACKSPACE}" );
Run Code Online (Sandbox Code Playgroud)

肯定有更好的办法.我无法相信我是唯一一个异步获取自动完成数据的人.我该怎么做?

编辑: Win32调用导致自动完成下拉是可以接受的.如果必须,我不介意PInvoking.

.net autocomplete winforms

8
推荐指数
1
解决办法
2388
查看次数

如何防止未经授权的代码访问.NET 2.0中的程序集?

在.NET 1.x中,您可以在程序集上使用StrongNameIdentityPermissionAttribute,以确保只有您签名的代码才能访问程序集.根据MSDN文档,

在.NET Framework 2.0及更高版本中,如果调用程序集具有完全信任,则对身份权限的要求无效.

这意味着任何具有完全信任的应用程序都可以绕过我的安全需求.

如何防止未经授权的代码访问.NET 2.0中的程序集?

code-access-security .net-2.0

7
推荐指数
1
解决办法
739
查看次数