Reputation: 15333
When I hit Compile Project (SHIFT+F6) in Visual Studio 2008, Visual Studio always seems to check the referenced projects/libraries first. It is understandable, because they have to be compiled first, but currently I happen to spend most of my time working actively only with the top level project (it's an ASP.NET application referencing a number of libraries), and the referenced libraries are sitting there and don't need to be checked every time.
When I do a full rebuild, it takes about 15 seconds (on a warmed up machine). When I make a change in the ASP.NET project, Visual Studio spends about 10 seconds just checking the referenced libraries.
Is there a way to "tell" Visual Studio: "Please believe me, I know the referenced libraries are there, don’t check them"? in which case I would be fine with getting compilation errors in case my assumption was wrong.
Note: I suspect that C/C++ developers could be amused by this because they usually measure compilation times in minutes and often in hours. On the other hand, in C/C++ one can compile only a single file.
Upvotes: 2
Views: 912
Reputation: 166606
Right click the solution, select properties.
Under Configuration Properties->Configuration you can select which projects should be built.
You can switch off the items you do not want to build. This is a bit more permanent solution and might cause some pains later, when you do make changes to other projects and forget to recompile/switch build back on.
Sorry, i forgot that i had these in my Macro 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
You can use thes in the Macro IDE, add them to a custom tool bar and use with the solution explorer.
Upvotes: 7
Reputation: 6685
You can compile the whole solution, and then unload libraries projects (right click menu on the project in solution explorer).
Upvotes: 2