我在Visual Studio中导出我的设置,如果我移动到新机器或有问题,我使用这些备份设置将Visual Studio恢复到我喜欢的方式.它还允许我在我使用的各种机器之间保持一致的开发环境.
这适用于键绑定,语法突出显示,用户工具,除了工具栏位置和自定义之外的几乎所有内容.每当我移动到新计算机并恢复设置时,工具栏都不会受到影响.我花了相当多的时间用我的宏,外部工具等设置工具栏,并为他们设置了切入的图标.我讨厌失去所有的工作.
有人知道如何备份和恢复工具栏的位置和自定义吗?如果它不是Visual Studio的一个功能,是否有一个可以完成这项工作的插件?
编辑
如下文所述,在菜单和命令栏自定义,在导入和导出设置是应该做的.但是,当我重新导入我以前的设置,我得到
错误1:菜单和命令栏自定义:不支持导入的命令栏设置的版本.已忽略所有命令栏设置.
我试图重新导入的设置在本月早些时候使用相同版本的Visual Studio导出.唯一的区别是我现在运行64位而不是x86.因为设置文件是XML,所以我认为这不会产生任何影响.
有任何想法吗?
我读过很多关于TDD主题的书籍和网站,它们都很有意义,特别是Kent Beck的书.然而,当我尝试自己做TDD时,我发现自己正盯着键盘,想知道如何开始.你使用过程吗?你的思考过程是什么?你如何确定你的第一次测试?
关于这个主题的大部分书籍都很好地描述了TDD是什么,而不是如何在现实世界的非平凡应用中练习 TDD.你是怎么做TDD的?
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) 我正在将一个MFC应用程序移植到.NET WinForms.在MFC应用程序中,您可以右键单击菜单或上下文菜单项,然后显示另一个包含诊断和配置项的上下文菜单.我试图将此功能移植到.NET,但我遇到了麻烦.
我已经能够捕获右键单击,禁用单击底层菜单并在正确的位置弹出上下文菜单,但原始菜单一丢失焦点就会消失.
在MFC中,我们通过使用TPM_RECURSE标志调用TrackPopupMenuEx来显示新的上下文菜单.
ContextMenu和.NET中较新的ContextMenuStrip类只有一个Show方法.有谁知道如何在.NET中这样做?
编辑
我已尝试通过ap/invoke 使用TrackPopupMenuEx,但这限制了您使用ContextMenu而不是在我们的应用程序中看起来不合适的ContextMenuStrip.它仍然无法正常工作.它不适用于新的MenuStrip和ContextMenuStrip.
我还尝试了子类化ToolStripMenuItem以查看是否可以向其添加上下文菜单.这适用于MenuStrip,但ContextMenuStrip仍允许右键单击事件作为点击进行传递.
我们有一个ASP.NET MVC 4应用程序,它链接到传统的本机代码.问题是这个遗留代码具有在启动时构建的全局静态代码,但由于本机代码对App Domains一无所知,因此在重新加载App Domain时不会重新初始化该代码.在重新启动应用程序池进程之前,这会导致我们的应用程序中出现不正确的行为或崩溃.
因此,我想强制应用程序池在我们的应用程序的App Domain被回收时进行回收.IIS中是否有这样的设置,或者是否正在卸载域时我可以在我的应用程序中调用代码?
关于我的设置的一些信息,
更新
根据下面的答案,我连接到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) 我试图在我的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)
但即使这样也行不通.任何建议?
我们的WinForms应用程序延迟加载数据以自动完成文本框.伪代码如下:
textBox.AutoCompleteCustomSource = fetchedAutoCompleteStringCollection;我目前在#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 1.x中,您可以在程序集上使用StrongNameIdentityPermissionAttribute,以确保只有您签名的代码才能访问程序集.根据MSDN文档,
在.NET Framework 2.0及更高版本中,如果调用程序集具有完全信任,则对身份权限的要求无效.
这意味着任何具有完全信任的应用程序都可以绕过我的安全需求.
如何防止未经授权的代码访问.NET 2.0中的程序集?