当我在Visual Studio 2008中点击Compile Project(SHIFT + F6)时,Visual Studio似乎总是首先检查引用的项目/库。这是可以理解的,因为它们必须首先编译,但是目前我大部分时间都只是在顶层项目(它是一个引用了许多库的ASP.NET应用程序)上积极工作,并且引用的库正在进行中在那里,不需要每次检查。
当我进行完全重建时,大约需要15秒(在预热的机器上)。当我在ASP.NET项目中进行更改时,Visual Studio花费大约10秒钟来检查引用的库。
有没有办法“告诉”Visual Studio:“请相信我,我知道引用的库在那里,不检查它们”?在这种情况下,如果我的假设错误,我会很好地收到编译错误。
注意:我怀疑C / C ++开发人员可能会对此感到好笑,因为他们通常会在几分钟内(通常在几小时内)测量编译时间。另一方面,在C / C ++中,只能编译一个文件。
答案 0 :(得分:7)
右键单击解决方案,选择属性。
在Configuration Properties-> Configuration下,您可以选择应该构建哪些项目。
您可以关闭不想构建的项目。这是一个更永久的解决方案,如果您对其他项目进行了更改并忘记重新编译/切换构建,可能会导致一些痛苦。
抱歉,我忘记了我的宏IDE中有这些
Sub SetAllCompile()
Dim scs As EnvDTE.SolutionContexts = DTE.Solution.SolutionBuild.ActiveConfiguration.SolutionContexts
Dim sc As EnvDTE.SolutionContext
For Each sc In scs
sc.ShouldBuild = True
Next
End Sub
Sub SetNoneCompile()
Dim scs As EnvDTE.SolutionContexts = DTE.Solution.SolutionBuild.ActiveConfiguration.SolutionContexts
Dim sc As EnvDTE.SolutionContext
For Each sc In scs
sc.ShouldBuild = False
Next
End Sub
Sub SetInvertCompile()
Dim scs As EnvDTE.SolutionContexts = DTE.Solution.SolutionBuild.ActiveConfiguration.SolutionContexts
Dim sc As EnvDTE.SolutionContext
For Each sc In scs
sc.ShouldBuild = Not sc.ShouldBuild
Next
End Sub
Sub SetSelectedCompile()
Dim scs As EnvDTE.SolutionContexts = DTE.Solution.SolutionBuild.ActiveConfiguration.SolutionContexts
Dim sc As EnvDTE.SolutionContext
For Each sc In scs
sc.ShouldBuild = False
Next
Dim selItem As SelectedItem
For Each selItem In DTE.SelectedItems
For Each sc In scs
Try
If (sc.ProjectName = selItem.Project.UniqueName) Then
sc.ShouldBuild = True
End If
Catch
End Try
Next
Next
End Sub
您可以在宏IDE中使用它们,将它们添加到自定义工具栏并与解决方案资源管理器一起使用。
答案 1 :(得分:2)
您可以编译整个解决方案,然后卸载库项目(在解决方案资源管理器中右键单击项目菜单)。