仅编译当前项目而不检查引用的项目

时间:2009-11-26 09:09:38

标签: c# visual-studio visual-studio-2008 compiler-construction

当我在Visual Studio 2008中点击Compile Project(SHIFT + F6)时,Visual Studio似乎总是首先检查引用的项目/库。这是可以理解的,因为它们必须首先编译,但是目前我大部分时间都只是在顶层项目(它是一个引用了许多库的ASP.NET应用程序)上积极工作,并且引用的库正在进行中在那里,不需要每次检查。

当我进行完全重建时,大约需要15秒(在预热的机器上)。当我在ASP.NET项目中进行更改时,Visual Studio花费大约10秒钟来检查引用的库。

有没有办法“告诉”Visual Studio:“请相信我,我知道引用的库在那里,不检查它们”?在这种情况下,如果我的假设错误,我会很好地收到编译错误。

注意:我怀疑C / C ++开发人员可能会对此感到好笑,因为他们通常会在几分钟内(通常在几小时内)测量编译时间。另一方面,在C / C ++中,只能编译一个文件。

2 个答案:

答案 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)

您可以编译整个解决方案,然后卸载库项目(在解决方案资源管理器中右键单击项目菜单)。