我正在尝试一些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
任何建议都将受到赞赏。
答案 0 :(得分:2)
对于VS 2005,我相信你可以在VCConfiguration上使用ClearToolProperty方法。以下代码将为CallingConvention实现此功能(这是C#,但我确信VB的类似功能):
cfg.ClearToolProperty( toolCompiler, "CallingConvention" );
这与进入GUI并为此选项选择"<inherit from parent or project defaults>"
具有相同的效果。
不幸的是,这似乎在VS 2010中被弃用了,我不确定新支持的方法是什么。