AssemblyInfo信息的批量修改(.NET 宏)

有这个问题,主要是几个原因

1:最近发现在项目引用中,出现引用了DEBUG版本的DLL,所以我需要区分一个DLL是Release、还是Debug版本(方法

2:有了方法,就要改AssemblyInfo信息了。这里是没办法用查找、替换的方式来实现。最后用了宏,来完成对AssemblyDescription这个标签的批量修改。


Public   Module  RecordingModule
    
Sub  TemporaryMacro()
        DTE.ExecuteCommand(
" Edit.FindinFiles " )
        DTE.Windows.Item(
" {CF2DDC32-8CAD-11D2-9302-005345000000} " ).Activate()  ' 查找和替换
        DTE.Find.FilesOfType  =   " Assemblyinfo.cs "
        DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()
        DTE.Find.FindWhat 
=   " [assembly: AssemblyDescription("""")] "
        DTE.Find.Target 
=  vsFindTarget.vsFindTargetFiles
        DTE.Find.MatchCase 
=   False
        DTE.Find.MatchWholeWord 
=   False
        DTE.Find.MatchInHiddenText 
=   True
        DTE.Find.PatternSyntax 
=  vsFindPatternSyntax.vsFindPatternSyntaxLiteral
        DTE.Find.SearchPath 
=   " 整个解决方案 "
        DTE.Find.SearchSubfolders 
=   True
        DTE.Find.FilesOfType 
=   " Assemblyinfo.cs "
        DTE.Find.ResultsLocation 
=  vsFindResultsLocation.vsFindResults1
        DTE.Find.Action 
=  vsFindAction.vsFindActionFindAll
        
If  (DTE.Find.Execute()  =  vsFindResult.vsFindResultNotFound)  Then
            
Throw   New  System.Exception( " vsFindResultNotFound " )
        
End   If

        System.Threading.Thread.Sleep(
1000 )

        
Dim  reg  As   New  Regex( " 匹配文件: (\d*) " )
        
Dim  match  =  reg.Match(DTE.StatusBar.Text)
        
If  match.Success  Then

            
For  i  =   1   To  Convert.ToInt32(match.Groups( 1 ).Value)

                DTE.Windows.Item(Constants.vsWindowKindFindResults1).Activate()
                DTE.ExecuteCommand(
" Edit.GoToFindResults1NextLocation " )
                DTE.Windows.Item(
" AssemblyInfo.cs [只读] " ).Activate()  ' 如果你没有使用VSS版本控制直接修改成 DTE.Windows.Item("AssemblyInfo.cs")
                DTE.ActiveDocument.Selection.EndOfLine( True )
                DTE.ActiveDocument.Selection.DeleteLeft()
                DTE.ActiveDocument.Selection.Text 
=   " #if DEBUG "
                DTE.ActiveDocument.Selection.NewLine()
                DTE.ActiveDocument.Selection.Text 
=   " [assembly: AssemblyDescription(""Debug"")] "
                DTE.ActiveDocument.Selection.NewLine()
                DTE.ActiveDocument.Selection.Text 
=   " #else "
                DTE.ActiveDocument.Selection.NewLine()
                DTE.ActiveDocument.Selection.Text 
=   " [assembly:AssemblyDescription(""Release"")] "
                DTE.ActiveDocument.Selection.NewLine()
                DTE.ActiveDocument.Selection.Text 
=   " #endif "
            
Next

        
End   If

    
End Sub
End Module
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值