0

アセンブリ プロパティを設定するための Visual Studio のマクロが必要です。このためのコード テンプレートはどこかにありますか? VS内またはインターウェブ上で?社名、商標等の設定を検討しています。

アップデート:

わかりました、これは私がC#で書いた/ハッキングしたものです。スニペットがあるかもしれないと思った。

  class Program
{
    /// <summary>
    /// 
    /// </summary>
    /// <param name="args"></param>
    static void Main(string[] args)
    {
        string rootDir = args[0];
        string qualifyingFileName = args[1];
        string disqualifyingPathNamePart = args[2];
        string assAttrib = args[3];
        string assAttribReplace = args[4];
        bool removeComments = bool.Parse(args[5]);
        bool removeEmptyLines = bool.Parse(args[6]);
        bool IsCSharp = false;

        IEnumerable<string> assFiles = Directory.EnumerateFiles(rootDir, qualifyingFileName, SearchOption.AllDirectories);
        foreach (string ass in assFiles)
        {
            try
            {
                if (ass.Contains(disqualifyingPathNamePart)) { continue; }
                IsCSharp = ass.EndsWith(".cs");
                List<string> assFileLines = new List<string>();
                assFileLines.AddRange(File.ReadAllLines(ass));

                for (int i = assFileLines.Count - 1; i >= 0; i--)
                {
                    if (assFileLines[i].Trim().StartsWith(IsCSharp ? "using" : "Imports")) { assFileLines.RemoveAt(i); continue; }
                    if (assFileLines[i].Trim().StartsWith("Option")) { assFileLines.RemoveAt(i); continue; }

                    if ((removeComments) && (assFileLines[i].Trim().StartsWith(IsCSharp ? "//" : "'"))) { assFileLines.RemoveAt(i); continue; }
                    if ((removeEmptyLines) && (assFileLines[i].Trim().Length == 0)) { 
                        assFileLines.RemoveAt(i); continue;
                    }
                    if (!assFileLines[i].Contains(assAttrib)) { continue; }
                    assFileLines[i] = assAttribReplace;
                }

                if (IsCSharp)
                {
                    assFileLines.Insert(0, "using System;");
                    assFileLines.Insert(1, "using System.Resources;");
                    assFileLines.Insert(2, "using System.Reflection;" );
                    assFileLines.Insert(3, "using System.Runtime.InteropServices;");
                    assFileLines.Insert(4, "");
                }
                else
                {
                    assFileLines.Insert(0, "Option Strict On");
                    assFileLines.Insert(1, "Option Explicit On");
                    assFileLines.Insert(2, "");
                    assFileLines.Insert(3, "Imports System");
                    assFileLines.Insert(4, "Imports System.Resources");
                    assFileLines.Insert(5, "Imports System.Reflection");
                    assFileLines.Insert(6, "Imports System.Runtime.InteropServices");
                    assFileLines.Insert(7, "");
                }
                File.WriteAllLines(ass, assFileLines);
            }
            catch { }
        }
        Console.WriteLine("Finito");
        Console.ReadLine();
    }
}

使用法: 次のようなステートメントでいっぱいのバッチ ファイル:

> macros.exe D:\Devzone AssemblyInfo.cs 3PL AssemblyCompany
> "[assembly: AssemblyCompany(\"Your company name\")]" true true
> 
> macros.exe D:\Devzone AssemblyInfo.cs 3PL AssemblyCopyright
> "<Assembly: AssemblyCopyright(\"Copyright © 2003-2013. Your company
> name. All Rights Reserved.\")>" true true
> 
> macros.exe D:\Devzone AssemblyInfo.vb 3PL AssemblyCopyright
> "<Assembly: AssemblyCopyright(\"Copyright © 2003-2013. Your company
> name. All Rights Reserved.\")>" true true
4

2 に答える 2

1

assemblyinfo ファイルを使用してその属性を定義しない理由はありますか?

http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.applicationservices.assemblyinfo.aspx

于 2012-05-20T06:55:57.543 に答える
1

これは、独自のテンプレートの作成に関する古い投稿です。

http://devrants.blog.com/2006/09/19/visual-studio-template-beyond-the-basics/

テンプレートは、以下を含む zip ファイルです。

.vstemplate

one or more custom files.

これらをカスタマイズすることで、カット アンド ペーストの時間と労力を大幅に節約できます。

テンプレート パラメータのこのページは完全ではありません。

$safeitemrootname$ = これは、ユーザーがダイアログに入力した名前のようです。

ここで定義されているように、これをマルチアイテム テンプレートと組み合わせる場合。これにより、提供された名前をクラスのルートとして使用できます。たとえば、次のファイルを作成する Entity.cs などの名前を持つテンプレートを作成できます。

EntityModel.cs
IEntityModel.cs
IEntityView.cs
IEntityController.cs
EntityController.cs

$fileinputname$ = これはテンプレートでも機能します

$XmlConvert_itemname$ = これは何をしますか? これはウィザードが設定したアイテムだと思います。

ドキュメントにも関わらず、WizardExtension はアイテム テンプレートでも機能するようです。

于 2012-05-20T06:57:58.427 に答える