将VCProject属性设置为默认值

时间:2010-03-01 12:00:12

标签: visual-studio visual-studio-2005 visual-studio-macros

我正在尝试一些VS2005 IDE宏来修改解决方案中的大量项目(~80)。我希望设置的一些属性确实将编程接口暴露给'default',但许多其他属性没有。有没有通用的方法将这些属性设置为默认值? (最终意味着从.vcproj文件中删除它们)

简化示例,设置一些随机属性:

   Sub SetSomeProps()
    Dim prj As VCProject
    Dim cfg As VCConfiguration
    Dim toolCompiler As VCCLCompilerTool
    Dim toolLinker As VCLinkerTool
    Dim EnvPrj As EnvDTE.Project

    For Each EnvPrj In DTE.Solution.Projects
        prj = EnvPrj.Object
        cfg = prj.Configurations.Item(1)


        toolLinker = cfg.Tools("VCLinkerTool")

        If toolLinker IsNot Nothing Then
            ' Some tool props that expose a *default* interface'
            toolLinker.EnableCOMDATFolding = optFoldingType.optFoldingDefault
            toolLinker.OptimizeReferences = optRefType.optReferencesDefault
            toolLinker.OptimizeForWindows98 = optWin98Type.optWin98Default
        End If

        toolCompiler = cfg.Tools("VCCLCompilerTool")

        If toolCompiler IsNot Nothing Then
            ' How to set it to default?  (*erase* the property from the .vcproj)'
            toolCompiler.CallingConvention = callingConventionOption.callConventionCDecl
            toolCompiler.WholeProgramOptimization = False
            toolCompiler.Detect64BitPortabilityProblems = False
        End If

    Next

End Sub

任何建议都将受到赞赏。

1 个答案:

答案 0 :(得分:2)

对于VS 2005,我相信你可以在VCConfiguration上使用ClearToolProperty方法。以下代码将为CallingConvention实现此功能(这是C#,但我确信VB的类似功能):

cfg.ClearToolProperty( toolCompiler, "CallingConvention" );

这与进入GUI并为此选项选择"<inherit from parent or project defaults>"具有相同的效果。

不幸的是,这似乎在VS 2010中被弃用了,我不确定新支持的方法是什么。