我想要Visual Studio的宏来设置程序集属性。在某处有代码模板吗?在VS内还是在互联网上?我想设置公司名称,商标等。
更新
O.k。这就是我刚刚用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();
}
}
useage:一个包含如下语句的批处理文件:
> 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
答案 0 :(得分:1)
您为什么不使用assemblyinfo文件并定义其属性?
http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.applicationservices.assemblyinfo.aspx
答案 1 :(得分: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似乎也可以在项目模板中使用。