1

VS2005 IDE マクロをいくつか試して、ソリューション内の大量のプロジェクト (~80) を変更しようとしています。設定したいプロパティのいくつかは、プログラム インターフェイスを「デフォルト」に公開しますが、他の多くは公開しません。そのようなプロパティをデフォルトに設定する一般的な方法はありますか? (最終的には .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

アドバイスをいただければ幸いです。

4

1 に答える 1

2

VS 2005 の場合、 VCConfiguration でClearToolPropertyメソッドを使用できると思います。次のコードは、CallingConvention でこれを実現します (これは C# ですが、VB でも同様のことが機能すると確信しています)。

cfg.ClearToolProperty( toolCompiler, "CallingConvention" );

"<inherit from parent or project defaults>"これは、GUI に入ってこのオプションを選択するのと同じ効果があります。

残念ながら、これは VS 2010 で廃止されたようで、新しくサポートされたメソッドが何であるかはわかりません。

于 2010-04-30T22:34:38.207 に答える