2009-11-05 209 views
0

我想在打开某个文件时显示警告,这怎么办? 例如,如果我打开Program.cs,会弹出一个警告对话框:“如果编辑这个,你将会死亡”如何在VS 2008中打开文件时显示消息?

+2

只需在文件中留言。或使文件为只读。 – Jason 2009-11-05 20:25:54

+0

@Jason:如果我只是想警告某个代码片段,该怎么办...... – Luiscencio 2009-11-05 20:28:29

+0

@Luiscencio在#区域中放置了那么一小段代码DONT EDIT #endregion区域? – 2009-11-05 20:40:14

回答

1

有几个选项:

  • 存储文件的版本控制(告诉我你正在使用的版本控制......拜托了!),并保持锁定状态,或使用您的版本控制系统,只允许特定用户做出改变。

  • 如果这是.NET代码,你可以把它放在一个带有注释等的区域,并且使随便的浏览器真正明白你需要什么。同样,如果这是.NET,并且您想要隔离此代码,则可以使用部分类并将有问题的代码移动到完全不同的源文件(类似于设计器对Forms/Controls/Resources所做的那样)。这样,你的“公共”代码全部在一起,你的“私人/有问题的”代码就在它自己的文件中,你可以用版本控制来保护它(见上文)。

  • 如果你有更多的空闲时间,你应该写一个自定义的视觉工作室插件是一个很好的解决方案,但你需要认真考虑与此有关的可用性问题。

    你不想在打开这个文件时随便扔出一个消息框。那就是EVIL ... EVIL我告诉你!你永远不知道文件将如何打开。如果是来自多文件文本搜索?这些烦人的消息框会突然中断IDE中的自动操作。

    相反,您需要某种解决方案,在适当的时候,这些解决方案是面对面的,但如果不适合,则完全不适合。我会建议在受影响的IDE文本中进行某种渲染更改,或者可能会出现一个浮动窗口(类似于MSN Messenger通知窗口),并且可能会在超时后自动消失。

    我强烈建议你从Developer ExpressDXCore。这是一个支持VS2005/2008/2010的免费可扩展性框架。它有许多方法来创建工具窗口,弹出窗口,执行动画并在文本窗口中绘制东西,当光标或显示视图位于特定代码段时执行条件事件通知。总之,它有你想要的基础。

    如果我写这作为一个附加的,我会做这样的事情:

    • 环绕的代码有问题与该地区的文本的特定文本标记一个#区域。就像“#region Notify Developer - 不要改变这个代码,这里是龙的,在你触摸这个代码之前打电话给Simon!”
    • 使用DXCore创建一个Visual Studio插件,该插件使用此特定标记(具有“Notify Developer”作为主题文本的#区域)查找#region标记。
    • 找到后,这些区域将以特殊方式呈现:在区域周围放置一个边框,执行半透明填充以“淡化”区域,将消息放置在区域的中间(或该地区的可见部分)。
    • 允许使用忽略消息('x'在角落),这也会导致不透明淡入淡出。

这将允许有问题的代码只能在你面前时,它实际上是可见的,而不是别的。

Developer Express公司使用他们的免费DXCore框架来创建CodeRushRefactor Pro!,这既增加大量的图形养眼的源文件(例如,的CodeRush 确实改变这一地区已呈现的方式)。并且使用DXCore,您可以获得更新的IDE版本免费的面向未来的版本。尼斯。

但是在某种程度上,我不得不问,为什么在评论或其他方法足够好时花费了很多精力。这开始对你的编码器进行一些微观管理。如果你有一个开发商,你不相信阅读评论并负责任地做他们的工作,你为什么要雇用他们?你会相信他们来运行你的插件吗?你会相信他们做别的事吗?我认为这是矫枉过正。添加评论...也许将源代码分成多个文件...绝对使用版本控制。不要混蛋。没有人喜欢一个混蛋。

2

您有两种选择来扩展Visual Studio:加载项和Visual Studio包。

插件相对容易实现,并且没有任何复杂的安装要求。

软件包功能更强大但需要软件包加载密钥,您必须从Microsoft网站请求软件包加载密钥。

这听起来像你可以通过一个Addin得到,如果你想要做的只是提出一个对话框。查看IVsUIShell接口和uiShell.ShowMessageBox()方法,通过VS Shell引发对话。 Here's关于创建插件的教程。

相关问题