当前位置: 首页 > 编程日记 > 正文

Visual Studio 2005 IDE 技巧和窍门

发布日期: 2007-02-26 | 更新日期: 2007-02-26

James Lau

Microsoft 项目经理

适用于:

Microsoft Visual Studio 2005

摘要:Visual Studio 2005 是目前业内一流的开发工具,我想在此与大家分享一些使用技巧和窍门,使这个优秀的开发工具更显威力。要充分利用一个工具,关键是要熟悉它,开发工具和 IDE 也不例外。不过,有了 C# 2.0、ASP .NET 2.0、Windows Workflow Foundation、Windows Presentation Foundation 和 Windows Communication Foundation 等等许多新技术,谁又会花费时间来了解 Visual Studio 本身呢?花费 10 分钟阅读本文将使您了解几项实用内容,这些内容可以使您在使用 Visual Studio 时更加惬意和高效。

*
本页内容
将双手保持在键盘上将双手保持在键盘上
Window 布局选择器Window 布局选择器
代码段代码段
自定义 Visual Studio 起始页自定义 Visual Studio 起始页
团队设置团队设置
/resetuserdata 参数/resetuserdata 参数
总结总结

将双手保持在键盘上

我最喜欢使用的键盘快捷方式

您可曾有过这样的期望:在 Visual Studio 内部进行开发工作时双手不必离开键盘?如果您是一名高级用户,您肯定会享受到使用键盘快捷方式执行各种操作所带给您的飞速体验。我确信大部分开发人员都已经熟悉了其中的某些快捷方式。使用 F5 执行 Debug.Start、F10 执行 Debug.StepOver、F4 执行 View.Properties,等等。不过仍有其他几个不太为人所知但极其实用的键盘快捷方式。在下表中,我列出了自己最喜欢使用的一些快捷方式。

键盘快捷方式命令

F7

在设计视图和代码视图之间切换。

F9

切换断点。

F12

转到变量、对象或函数定义。

Ctrl+Shift+7

Ctrl+Shift+8

在“转到定义”堆栈中快速向前和向后导航。

Shift+F12

查找某个函数或变量的所有引用。

Ctrl+M、Ctrl+M

在编辑器中展开和折叠代码段结构。

Ctrl+K、Ctrl+C

Ctrl+K、Ctrl+U

分别用于为代码行添加注释和取消注释。

Shift+Alt+Enter

在全屏模式和正常模式之间切换。

Ctrl+I

渐进式搜索。

创建键盘快捷方式速查表。

大部分开发人员都不了解这一点,但实际上,Visual Studio 默认提供了 450 多个键盘快捷方式。不过,对于如何找到 Visual Studio 内部的所有键盘快捷方式还没有简便的方法。您可以编写一个简单的宏,对于所有默认键盘快捷方式进行遍历,找到它们所对应的操作。以下内容(列表 1)列出了这个宏的代码。

Public Module Module1
Public Sub ListShortcutsInHTML()
'Declare a StreamWriter
Public Sub WriteHTMLStart(ByVal sw As System.IO.StreamWriter)
sw.WriteLine("<html>")
sw.WriteLine("<head>")
sw.WriteLine("<title>")
sw.WriteLine("Visual Studio Keyboard Shortcuts")
sw.WriteLine("</title>")
sw.WriteLine("</head>")
sw.WriteLine("<body>")
sw.WriteLine("<h1>Visual Studio 2005 Keyboard Shortcuts</h1>")
sw.WriteLine("<font size=""2"" face=""Verdana"">")
sw.WriteLine("<table border=""1"">")
sw.WriteLine("<tr BGCOLOR=""#018FFF""><td align=""center""><b>Command</b></td><tdalign=""center""><b>Shortcut</b></td></tr>")
End Sub
Public Sub WriteHTMLEnd(ByVal sw As System.IO.StreamWriter)
sw.WriteLine("</table>")
sw.WriteLine("</font>")
sw.WriteLine("</body>")
sw.WriteLine("</html>")
End Sub
End Module

列表 1. 在 HTML 文件中生成键盘快捷方式的宏

要使用这个宏,请转到“工具”,选择“宏”,然后选择“宏 IDE. . .”启动“宏 IDE”。展开 MyMacros 工程,MyMacros 命名空间,然后双击“Module1”。将列表 1 中的内容复制到“宏 IDE”然后运行宏即可。运行宏之后,将会生成 Visual Studio 的键盘快捷方式参考信息。打开包含输出内容的 C:/demo/Shortcuts.html 文件。“图 1”显示了部分输出内容。如果方便就将它打印出来,贴在计算机附近,以便学习新的键盘快捷方式。

.

图 1. Visual Studio 2005 键盘快捷方式列表(部分)

自定义键盘快捷方式

如果某个您喜欢使用的键盘快捷方式默认没有设置,您总是可以通过单击“工具”>“选项...”>“环境”>“键盘”来自定义这个快捷方式(参见图 2)。不过,如果要在您的使用环境中添加多个键盘快捷方式,则可以通过编辑自动保存的设置文件直接添加这些快捷方式。可以通过以下步骤来实现:

.

图 2. “选项”对话框 - 自定义“键盘快捷方式”

步骤 1:导出当前的“键盘快捷方式”。转到“工具”>“导入和导出设置. . .”,启动“导入/导出设置向导”。选择“导出选定的环境设置”,单击“下一步”。单击“所有设置”,取消选中所有复选框,然后展开“选项”、“环境”节点,选择“键盘”复选框(图 3)。单击“下一步”转到向导的最后一页。将新的设置文件命名为“MyKeyboardShorcuts.vssettings”,路径使用默认目录(图 4)。单击“完成”。

.

图 3. 只选择导出“键盘”设置类别

.

图 4. 将设置文件重命名为 MyKeyboardShortcuts.vssettings

步骤 2:打开并编辑设置文件。该文件的路径为 My Documents/Visual Studio 2005/Settings/MyKeyboardShortcuts.vssettings。Visual Studio 的设置文件就是 XML 格式的文件,您可以使用任何编辑器打开该文件。我推荐使用 Visual Studio 来打开该文件,因为这样可以使用 Visual Studio 中的为语法标注颜色的功能以及文档格式设置功能。打开文件之后,按下 Ctrl+K、Ctrl+D,让 Visual Studio 对其自动进行格式设置。然后,查找 <UserShortcuts> 标签。在此 XML 元素内部,您可以添加自己的一列快捷方式。下面的“列表 2”显示了一个示例。

...
<UserShortcuts>
<Shortcut Command="View.CommandWindow" Scope="Global">
Ctrl+W, Ctrl+C
</Shortcut>
<Shortcut Command="View.SolutionExplorer" Scope="Global">
Ctrl+W, Ctrl+S
</Shortcut>
<Shortcut Command="View.ErrorList" Scope="Global">
Ctrl+W, Ctrl+E
</Shortcut>
<Shortcut Command="View.TaskList" Scope="Global">
Ctrl+W, Ctrl+T
</Shortcut>
<Shortcut Command="View.Output" Scope="Global">
Ctrl+W, Ctrl+O
</Shortcut>
</UserShortcuts>
...

列表 2. 直接在设置文件中添加“键盘快捷方式”

此处的 XML 是非常容易理解的。只要为要添加的每个快捷方式设置一个 <Shortcut> 元素即可。将快捷方式本身指定为该元素的内容,要将 Shift、Ctrl 和 Alt 等修改键结合起来使用,可以使用“+”字符将它们串连起来(例如,Ctrl+Alt+J)。在“Command”属性中为快捷方式所要绑定的命令指定规范的命令名称。“Scope”属性总是为“Global”,因此这里不再赘述。此操作过程中最困难的部分可能就是确定特定命令的规范名称。特定命令的规范名称的格式为:顶级菜单名称加“.”字符再加命令名称,采用“驼峰式”大小写格式,不包含任何空格。

添加了所有快捷方式之后,保存该文件。

步骤 3:导入设置文件。既然已在设置文件中添加了快捷方式,现在就可以将文件导回到您的使用环境中。当然,也可以将您的设置文件分享给其他人员使用。再次启动“导入和导出设置向导”,但这次选择“导入选定的环境设置”;单击“下一步”。选择“否,仅导入新设置,改写我的当前设置”,然后单击“下一步”。选择“我的设置”文件夹下的“MyKeyboardShortcuts.vssettings”,然后单击“下一步”。使用默认选择,单击“完成”。

在工具提示中显示快捷方式

您可以实际指定环境在提示信息中显示快捷方式,将鼠标移到工具栏命令的上方时可显示相应的提示信息。转到“工具”>“自定义. . .”,确保选中“在屏幕提示中显示快捷键”选项。

.

图 5. 在工具提示中启动快捷键显示

返回页首返回页首

Window 布局选择器

Visual Studio 是一个功能强大的开发环境,它使用许多不同的工具窗口用于不同的任务和目的。对于 VS 2005 中新提供的 Team System 功能而言尤其如此。我们曾经听到许多用户反映,如果有一种可以在不同的窗口布局之间快速切换以适合当前要处理的任务的方式,会非常有用。实际上您可以在 VS 2005 内部自己创建这项功能,不过,这需要执行几个步骤。

步骤 1. 创建设置文件。Visual Studio 2005 中有一项可以导入/导出环境设置的新功能。实际上,可以将可对环境进行的所有自定义设置导出到一个文件中,这样就可以将这些自定义设置与其他用户分享使用、将其导入到其他计算机,或者作为备份来存储。可以导入/导出的设置包括:窗口布局、键盘快捷方式、菜单自定义设置、字体与颜色以及“选项”对话框(“工具”>“选项. . .”)中实际存在的所有内容。可以根据需要,随时导出所有环境设置,也可以只导出其中的一部分。

在创建我们的“窗口选择器”时,第一个步骤是为每个想要使用的窗口布局创建单独的设置文件。在此示例中,我要创建 3 个设置文件,分别对应 3 个我想要使用的窗口布局:CodeWriting、CodeBrowsing 和 FormsDesign。

第一步就是按照您编写代码时喜欢的方式来布置窗口布局。就我而言,我喜欢将所有可见的工具窗口设置为自动隐藏状态以最大化编码区域。图 6 显示了我是如何为这个窗口布局来布置工具窗口的,不过您可以随意将其调整为您喜欢的方式。然后,转到“工具”>“导入和导出设置”,启动“导入和导出设置向导”。选择“导出选定的环境设置”,单击“下一步”。只选择窗口布局复选框,然后单击“下一步”。将设置命名为“CodeWritingWinLayout.vssettings”,然后单击“完成”。现在,您已经创建了您所需的三个设置文件中的第一个文件。重复以上这些步骤,创建余下的两个设置文件。显然,您需要更改窗口布局并将文件命名为其他名称。我已将我的设置文件命名为“CodeBrowsingWinLayout.vssettings”和“FormsDesignWinLayout.vssettings”。

.

图 6. 用于编码的窗口布局

步骤 2. 创建宏来导入设置文件。在创建设置文件之后,您需要创建 3 个宏 - 分别用于导入每个设置文件。从下面的“列表 3”可以看出,这个代码并不复杂。

Imports EnvDTE
Imports EnvDTE80
Imports System.Diagnostics
Imports System.IO
Public Module Module1
Public Sub ImportWinLayoutCodeWriting()
DTE.ExecuteCommand("Tools.ImportandExportSettings",
"-import:c:/demo/settings/CodeWritingWinLayout.vssettings")
End Sub
Public Sub ImportWinLayoutCodeBrowsing()
DTE.ExecuteCommand("Tools.ImportandExportSettings",
"-import:c:/demo/settings/CodeBrowsingWinLayout.vssettings")
End Sub
Public Sub ImportWinLayoutFormsDesign()
DTE.ExecuteCommand("Tools.ImportandExportSettings",
"-import:c:/demo/settings/FormsDesignWinLayout.vssettings")
End Sub
End Module

列表 3. 用于导入设置文件的宏代码

步骤 3. 在工具栏中添加按钮。 现在可以创建更改窗口布局的实际按钮。单击“工具”>“自定义. . .”,单击“命令”选项卡。从“类别”列表框中选择“宏”,然后在“命令”列表中向下滚动,找到刚才编写的三个宏。这些宏的名称应该为 MyMacros.Module1.ImportWinLayoutCodeWriting、MyMacros.Module1.ImportWinLayoutCodeBrowsing 和 MyMacros.Module1.ImportWinLayoutFormsDesign(参见图 7)。单击每个命令,将其拖动到 Visual Studio 工具栏上。您现在需要在工具栏中右键单击新放置的命令,将这些命令的名称更改为更短的名称。

.

图 7. 使用“自定义”对话框将宏放置到工具栏上。

关闭“自定义”对话框,保存您的自定义设置。您已经创建了您自己的“窗口布局”选择器。单击工具栏上的这些新按钮,尝试使用这些按钮。您甚至可以转到“工具”>“选项. . .”>“环境”>“键盘”页面为这些命令指定键盘快捷方式。

返回页首返回页首

代码段

代码段是在 Visual Studio 2005 中引入的最能体现效率的特点之一。它可以避免单调乏味的输入过程(例如键入 for 循环),使您能够快速插入代码段,它还可以提供可完成特定任务(如通过网络发送数据)的模板。大部分内置的 C# 代码段都属于第一种类型 - 这些代码段可以帮助您将重复输入降到最低,而很大一部分内置的 VB 代码段都属于第二种类型 - 使用这些代码段可以更容易地编写执行特定任务的代码。

有两种插入代码段的方式。您可以在代码编辑器中键入代码段的别名,然后按两次 Tab 键(对于 VB 只需按一次 Tab 键)即刻插入代码段。在插入代码段之后,您可以通过按 Tab 键和 Shift+Tab 键跳到代码段的不同区域。这允许您快速更改需要修改的代码部分。请注意:在 C# 中,代码段别名也具有 IntelliSense。您可以在 IntelliSense 列表中通过其代码段图标指明某一项为代码段。

.

图 8. IntelliSense 完全支持代码段

如果忘记了代码段的别名,还可以按“Ctrl+K、Ctrl+X”在代码编辑器内插入别名,也可单击鼠标右键,然后选择“插入代码段...”。这会显示代码段选取器,使用它可以浏览适用于当前编程语言的所有代码段以及选择要插入的代码段。这种插入代码段的方法对于 C# 和 Visual Basic 均有效。对于 Visual Basic 用户,还可以有另一种插入代码段的方式:您可以键入代码段别名的前几个字母,后跟“?”,然后按 Tab 键。Visual Studio 会显示一个按字母排序的列表,其中包含与突出显示的内容最为匹配的所有代码段的别名。此功能仅适用于 Visual Basic 用户。

.

图 9. 在 C# 中插入代码段

从个人角度将,最令人兴奋的代码段功能部分是,您可以为个人使用而创建自己的代码段,也可以将其分享给其他同行使用。当然,您也可以下载其他开发人员创建好的代码段。

在 Visual Studio 内部非常容易就可以创建您自己的代码段。我将通过一个示例说明如何操作。我经常会编写一些应急的实用程序来帮助我完成工作。其中的许多实用程序都有通用的模式:打开某个文件,执行一些处理,然后关闭该文件。以下是我的代码段的创建步骤。

步骤 1: 创建 XML 文件。每个代码段都包含在一个 XML 文件中。在 Visual Studio 内部,只要转到“文件”>“新建. . .”>“文件. . .”,然后选择“XML 文件”类型即可。

.

图 10. 创建新的 XML 文件

步骤 2:定义代码段。如果有足够的兴趣,甚至还有一个可创建代码段的代码段。只要在该文件的第二行按下 Ctrl+K、Ctrl+X,选择“Snippet”代码段,就会自动为您插入一个代码段文件的模板。

.

图 11. 使用 XML 代码段来创建其他代码段

标题、作者、快捷键和描述字段这些内容不言自明,我就不再具体说明了。<Snippet> 标签中的内容值得讨论,我下面的例子可以对此给出最好的解释。

实际上,您将所有代码放在了 <![CDATA[...]]> 标签之内,而该标签是在 </Code> 标签的内部。对于那些希望用户可以轻松替换的字段,您可以在这些字段两边放置一对“$”字符。在我的示例中,我设置了三个我的代码段用户可以轻松替换的参数:StrmReader、FilePath 和 Line。这三个参数在 CDATA 部分的内部使用,每个参数两侧都有一对“$”字符。此外,每个参数也必须在 <Declarations> 元素中进行定义。为每个参数指定一个 ID 和一个默认值(可选)。

敏锐的读者会注意到,在我的代码段内部还有另外一个我没有定义的参数: $end$。这是一个特殊参数,用于指定用户在代码段字段中填写完内容并按下 Enter 键后光标所在的位置。还有一个我在此处没有列出的特殊参数:$selected$。$selected$ 参数只对 SurroundsWith 类型的代码段有意义。它用于定义在使用“Surround With...”插入此代码段时所选的代码段的放置位置。

<?xml version="1.0" encoding="utf-8"?>
<CodeSnippet Format="1.0.0" xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<Header>
<Title>File Processing</Title>
<Author>James Lau</Author>
<Shortcut>fp</Shortcut>
<Description>Opens a file, does some processing, and then closes the file.</Description>
<SnippetTypes>
<SnippetType>SurroundsWith</SnippetType>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>StrmReader</ID>
<Default>strmReader</Default>
</Literal>
<Literal>
<ID>FilePath</ID>
<Default>fPath</Default>
</Literal>
<Literal>
<ID>Line</ID>
<Default>strLine</Default>
</Literal>
</Declarations>
<Code Language="CSharp">
<![CDATA[         
StreamReader $StrmReader___FCKpd___3nbsp;= null;
try
{
$StrmReader___FCKpd___3nbsp;= new StreamReader($FilePath$);
string $Line$;
while (($Line___FCKpd___3nbsp;= $StrmReader$.ReadLine()) != null)
{
// Perform some processing
$selected$
$end$
}
}
catch (IOException ioex)
{
// Handle exception
}
finally
{
$StrmReader$.Close();
}
]]>
</Code>
</Snippet>
</CodeSnippet>

列表 4. 代码段内容示例

返回页首返回页首

自定义 Visual Studio 起始页

在 Visual Studio 2005 中,新的“起始页”不只是包含可以提供有关 MSDN 新闻的最新信息的实时 RSS 源。如果希望在“起始页”上阅读某些其他的 RSS 源,可以通过选择“工具”、“选项. . .”、“环境”,然后选择“启动”页面(在此可以编辑“起始页新闻频道”下面的 URL),自定义 RSS 新闻频道。如果希望在每次启动 Visual Studio 时不要自动显示“起始页”,您还可以通过在同一选项页面中选择“启动时”下面的“显示空环境”来更改此行为。

返回页首返回页首

团队设置

Visual Studio 2005 中另外一个少有人知的新功能是“团队设置”。如果您在团队环境下工作(大部分情况下是如此),那么“团队设置”可以帮助您强制执行团队编码规则或者更快地设置 Visual Studio。

让我们假定您要在团队内部强制执行一组基本的代码格式规则。您可以只创建设置文件,让您的团队成员指向该文件,而不必指定这些规则的内容并让每个团队成员自定义其 IDE 选项以遵从这些规则。无论何时更新团队设置文件,该文件都会在用户下次启动 Visual Studio 时自动导入来改写已有的设置。以下步骤说明了如何使用这个强大的功能。

步骤 1:创建设置文件。您可以使用“团队设置”来强制执行任何您需要的 IDE 自定义设置。开发人员使用“团队设置”最常进行的设置应该是代码格式设置。不过,您也可以将此功能用于任何可以导出的 Visual Studio 设置,如“字体与颜色”、“SourceSafe 设置”、“键盘快捷方式”和“菜单自定义”,等等。只要在 Visual Studio 内部自定义所需的设置,然后使用“工具”>“导入/导出设置. . .”将其导入到已知位置即可。请仅导入要与团队享的那组设置,这一点很重要。

步骤 2:在 UNC 路径中放置设置文件。将步骤 1 中导出的设置文件复制到您的团队成员可以访问的网络路径中。在我的计算机上,我在 //jameslau/public/teamsettings.settings 路径下共享了我的团队设置文件。

步骤 3:更改“团队设置”路径。让团队成员更改他们的“团队设置”路径,使其指向您的团队设置文件。他们可以转到“工具”>“选项. . .”>“环境”>“导入和导出设置”来完成此操作。选择(选中)“使用团队设置文件”复选框,指定团队设置文件的路径。

.

图 12. 用于更改“团队设置”路径的“选项”对话框

返回页首返回页首

/resetuserdata 参数

我要与大家分享的最后一个技巧与 /resetuserdata 参数有关。如果 Visual Studio 在运行时被损坏,且无法从损坏状态进行恢复,您可以使用此参数将 Visual Studio 重置到其使用之初的状态。这些问题的例子可能包括:窗口布局文件被破坏、菜单自定义文件被破坏,或者键盘快捷方式文件被破坏。免责声明:如果使用此参数,您将丢失所有的环境设置和自定义设置。出于这个原因,Microsoft 不公开支持使用此参数,而且也没有将这个参数公之于众(如果在命令提示行中键入 devenv.exe /?,您不会看到显示此参数)。如果遇到环境方面的问题,应该将这个方法作为不得已而为之的办法,并且确保在使用此参数前,已通过导出环境设置对其进行了备份。

要使用此参数,请执行以下操作:

1.

关闭所有 Visual Studio 2005 实例。 

2.

单击“开始”,选择“运行...”。 

3.

键入“devenv.exe /resetuserdata”。

此命令会运行几分钟时间,与此同时,Visual Studio 清除设置并将其自身重置到其最初的状态。此时,您可以打开“任务管理器”来检查 devenv.exe 进程是否仍在运行。在结束运行后,可以重新启动 Visual Studio。此时会再次出现首次启动对话框,就像在计算机上第一次运行 Visual Studio 一样。

返回页首返回页首

总结

我们将通过我们的努力工作,不断为您带来 Visual Studio 的实用高效的功能。我希望这些技巧能对您有用,可以帮助您成为 Visual Studio 高级用户。如果对于 Visual Studio IDE 问题有任何的意见、反馈或者建议,非常欢迎您向我们发送相关邮件。可以将您给我们的邮件发送到 jameslau@microsoft.com

© 2006 Microsoft Corporation 版权所有。保留所有权利。使用规定。 

相关文章:

ZOJ 1025 Wooden Sticks(快排+贪心)

题目链接&#xff1a;http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId25 题目大意&#xff1a;机器运送n个木条&#xff0c;每个木条有一个长度和重量。运送第一根木条需要1分钟的准备时间&#xff0c;接下来如果后一根木条的长度和重量都大于等于前一根木条&…

Swift:UIKit中Demo(一)

关于Swift的基本概念及语法知识。我在前面的章节中已经介绍了非常多。这一节和下一节主要有针对性的解说Swift在实际UIKit开发中的使用场景及注意点。先来看看Demo的终于效果图。Demo分析&#xff1a; 1. 界面上面有三个button&#xff0c;他们的宽度不一致。 2. 点击每一个but…

jdbc封装与多并发的共鸣

欢迎来到&#xff1a;http://observer.blog.51cto.com代码的封装是一门艺术&#xff0c;封装得好&#xff0c;不但给自己便利&#xff0c;还可以给自己的维护提供帮助&#xff1b;同时&#xff0c;封装得好&#xff0c;还可以给看自己代码的人以赏心悦目的感觉&#xff0c;团队…

计算机视觉怎样实现自我超越?更大规模更精准的数据

最新发布的《2021中国人工智能应用趋势报告》强调&#xff0c;数据、算力和算法是支撑人工智能发展的"三驾马车"&#xff0c;为模型训练提供基本资料的「数据」&#xff0c;是人工智能的根基。 随着互联网、社交媒体、移动设备和传感器的大量普及&#xff0c;其产生…

Visual Studio 2005 Web Deployment Projects版本不同引发的问题

为了方便Visual Studio 2005发布为单一dll&#xff0c;微软发布了一个Visual Studio 2005 插件&#xff0c;Visual Studio 2005 Web Deployment Projects&#xff0c;在微软的不同文档里&#xff0c;这个插件提供了两个下载地址&#xff0c;分别是&#xff1a; 下载地址一&…

【书籍下载链接】_2_第二轮_计算机专业书籍

各位朋友&#xff0c;下面是我收集的书籍&#xff0c;介绍给大家&#xff0c;有需要可以分享给大家&#xff0c;如果看的还可以&#xff0c;请购买纸质版的图书。 驱动器 J 中的卷是 Elements 卷的序列号是 8AAF-3206 j:\ 的目录 2014/01/20 20:00 1,533,385 WinCE.pdf2010/09/…

VS2005发布、生成网站时如何设置固定的dll文件名?

在用VS2005发布网站项目时,默认生成bin目录下的.dll文件名是随机命名的; 如果要固定生成文件名如何固定呢&#xff1f;有以下两种方案&#xff1a; 一、每个页面的程序集分别生成对应的dll; 方法&#xff1a;在“发布网站”的选项中&#xff0c;勾选“使用固定命名和单页程…

android 广播机制

1&#xff1a;首先说andoid 广播分为系统的和 自定义的 2&#xff1a;注册方式呢&#xff0c;也是两种&#xff0c;1&#xff1a;静态注册&#xff0c;在manifest.xml 文件中注册的 2&#xff1a;动态注册&#xff0c;用filter 区分 不说了 占代码 首先是动态注册&#xff1a;…

2021第一融!第四范式完成D轮7亿美元融资

来源丨第四范式头图丨来源于第四范式近日&#xff0c;第四范式宣布完成D轮融资&#xff0c;融资金额7亿美元。本轮融资由春华资本、博裕资本、厚朴投资领投&#xff0c;并引入国家制造业转型基金、国开、国新、中国建投、中信建投、海通证券等战略股东&#xff0c;红杉中国、中…

springboot-26-springboot 集成rabbitmq

rabbitmq是基于AMQP规范的一个消息代理, 它可以兼容jms, 支持其他语言, 并且可以跨平台 1, 安装 1) 普通安装 度娘: 2) docker 安装 sudo docker run -d -p 5672:5672 -p 15672:15672 rabbitmq:3-management 安装成功后: 使用 guest/guest 用户登录 2 使用: 1) 添加 rabbi…

asp.net中的联动菜单

目标达到的效果&#xff1a;两个下拉框&#xff0c;第二个跟随第一个变化而变化&#xff0c;使用客户端脚本JavaScript在ASP.NET环境下实现。 第一步&#xff1a;建立JavaScript脚本&#xff1a; 在Page_Load中建立并注册这个js脚本&#xff1a; string scriptKey "Menu…

2020长沙“科技之星”榜单重磅揭晓,近百家企业凭实力“出道”!

今天&#xff0c;「INFLUENCE长沙 2020年度“科技之星”企业评选」&#xff08;下文统称「长沙科技之星」&#xff09;圆满收官&#xff0c;评选结果正式揭晓&#xff01;作为专业的 IT 社区&#xff0c;CSDN 多年来与千万技术人员、技术企业共同见证了产业的发展和时代的变更…

CENTOS6.4 IBUS输入法不显示候选词解决办法

IBUS输入法 不显示候选词原因分析&#xff1a;输入im-chooser时候&#xff0c;显示找不到gtk模块&#xff1b;原因为升级python后的版本&#xff0c;不能导入gtk。找到能够导入gtk版本的python,然后默认python设置为此版本。故障解决&#xff1a;删除或更改默认python版本# whi…

sql server 表索引碎片处理

DBCC SHOWCONTIG (Transact-SQL) SQL Server 2005 其他版本更新日期&#xff1a; 2007 年 9 月 15 日 显示指定的表或视图的数据和索引的碎片信息。 重要提示&#xff1a;后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能&#xff0c;并着手修…

ASP.NET2.0 GridView小技巧汇粹

1)GridView绑定数据源控件,需要有编辑和删除选项按钮时,数据源控件必须提供SQL操作语句或存储过程调用,一般,我的推荐做法是,使用无意义的SQL语句或存储过程来使GridView的编辑和删除按钮可以生成,具体的编辑更新和删除操作在代码运行时而不是在控件设计时指定,虽然多写了一点代…

树莓派出微控制器了!Raspberry Pi Pico 只需 4 美元

整理 | 郑丽媛来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;昨天&#xff0c;树莓派搞了个大动作&#xff1a;推出了首款微控制器开发板 Raspberry Pi Pico&#xff01;该开发板基于树莓派开发的全新芯片——RP2040&#xff0c;并且作为双核 Arm Cortex-M0 的它…

“chaos”的算法--之链表面试题

【 声明&#xff1a;版权所有&#xff0c;欢迎转载。 联系信箱&#xff1a;yiluohuanghungmail.com】前两天倩仔仔给我了一套试题让我看&#xff0c;整体来说感觉题都还算不错&#xff0c;从中随便找了两道。先看题吧&#xff01;1、怎样判断一个单链表中是都存在环路&#xff…

ABP官方文档翻译 6.1.2 MVC视图

ASP.NET MVC 视图 介绍AbpWebViewPage基类介绍 ABP通过Abp.Web.Mvc nuget包集成到MVC视图。你可以如往常一样创建正常的MVC视图。 AbpWebViewPage基类 ABP提供了AbpWebViewPage&#xff0c;它定义了一些有用的属性和方法。如果你使用启动模板创建的工程&#xff0c;那么你所有的…

ASP.NET 打开新窗口几种方法

ASP.NET打开新窗口方法一:Response.Write("<script language/"javascript/">window.open(aaa.aspx,新窗口,/"toolbaryes,locationno,directoriesyes,statusyes,menubaryes,resizableyes,scrollbarsyes/");</script>");这种方式代码每…

Hibernate的使用梳理

Hibernate创建步骤 &#xff08;五大核心接口&#xff1a;Configuration/SessionFactory/Session/Transaction/Query&#xff09; 1.新建java工程&#xff0c;导入需要的jar包。 2.创建hibernate.cfg.xml配置文件和Test.java工具类。配置好相应的实体对象User.java User.hbm.x…

驭势科技引入国家队战略注资,完成超10亿元人民币融资

2021年1月25日&#xff0c;驭势科技&#xff08;UISEE&#xff09;宣布完成累计金额超10亿元人民币的新一轮融资&#xff0c;并获得国开制造业转型升级基金的战略注资。这是国开制造业转型升级基金在自动驾驶领域的首笔投资。2019年11月&#xff0c;国家制造业转型升级基金股份…

[Python爬虫] 之二十二:Selenium +phantomjs 利用 pyquery抓取界面网站数据

一、介绍 本例子用Selenium phantomjs爬取界面&#xff08;https://a.jiemian.com/index.php?msearch&aindex&typenews&msg电视&#xff09;的资讯信息&#xff0c;输入给定关键字抓取资讯信息。 给定关键字&#xff1a;数字&#xff1b;融合&#xff1b;电视 抓取…

android高级编程-android高级应用

android高级应用>>>第一阶段程序员基本素质养成程序员所需要具备的12条职业素质让学员初步了解和审视自己所应该具备的职业素质。并且我们会在授课中随时训练和贯彻这样的素质&#xff0c;最终把大家捏成专业的职业的程序员。迭发各个环节及工具初步介绍总概性的讲解一…

asp.net三种重定向方法的总结

(1)Server.Transfer方法: Server.Transfer("m2.aspx");//页面转向(服务器上执行). 服务器停止解析本页,保存此页转向前的数据后,再使页面转向到m2.aspx, 并将转向前数据加上m2.aspx页结果返回给浏览器. (2)Server.Execute方法: Server.Execute("m2.aspx"…

区区几行Python代码,一分钟搞定一天工作量

作者 | 陈熹、刘早起来源 | 早起Python大家好&#xff0c;我是早起。前几天有一个读者说最近要整理几千份文件&#xff0c;头都要整秃了&#xff0c;不知道能不能用Python解决&#xff0c;我们来看一下&#xff0c;你也可以思考一下。由于涉及文件私密所以具体内容已做脱敏处理…

bc计算命令的知识及企业计算案例

bc命令的用法&#xff1a;bc是unix下的计算器&#xff0c;它也可以用在命令行下面&#xff1a;例&#xff1a;给自变量i加1i2iecho $i1|bc -----效率低#因为bc支持科学计算&#xff0c;所以这种方法功能非常强大[rootXCN ~]# echo 11|bc 2 [rootXCN ~]# echo 1*1|bc 1 […

ExecutorService与Executors例子的简单剖析(转)

对于多线程有了一点了解之后&#xff0c;那么来看看java.lang.concurrent包下面的一些东西。在此之前&#xff0c;我们运行一个线程都是显式调用了 Thread的start()方法。我们用concurrent下面的类来实现一下线程的运行&#xff0c;而且这将成为以后常用的方法或者实现思路。 …

GridView隐藏列取值解决方案

【摘要】 在Asp.net 2.0中增加了一个新的数据绑定控件&#xff1a;GridView&#xff0c;其目的用来取代Asp.net1.x中的DataGrid控件&#xff0c;但有一点很不爽的是&#xff0c;如果把某列设置为visiblefalse&#xff0c;则不会进行数据绑定&#xff0c;也就是说无法直接从Grid…

百度飞桨成为北京市首个AI产业方向创新应用平台

1月20日&#xff0c;北京市经济和信息化局正式授予百度公司"北京市人工智能产业创新应用平台&#xff08;百度飞桨&#xff09;"。当前&#xff0c;北京市正在创建国家人工智能创新应用先导区&#xff0c;人工智能作为新科技革命和产业变革前沿领域&#xff0c;是北京…

FTP的20、21端口,工作模式

什么是FTP? FTP就是文件传输协议 File Transfer Protocol 的缩写. FTP端口号是多少? 21 FTP的端口号能改吗? 能 ftp的端口号20、21有何区别? 一个是数据端口&#xff0c;一个是控制端口&#xff0c;控制端口一般为21&#xff0c;而数据端口不一定是20&#xff0c;这和FTP的…