2007-12-26

更改visual studio 工程默认公司名称

在vs中每创建一个工程,都会生成一个AssemblyInfo.cs 来保存一些必要的信息

[assembly: AssemblyTitle("blahblah")]
[assembly: AssemblyDescription("ok")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("hal")]
[assembly: AssemblyProduct("movmem")]
[assembly: AssemblyCopyright("Copyright © hal 2007")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

有时候(例如要把代码发布到google code上)处于安全等等方面的考虑,我们不希望使用这个默认的公司名,对于一个工程,我们可以手动修改,可是工程一多,每次都要修改就有些麻烦了。

那么这个hal究竟保存在哪里呢?答案是HKLM\Software\Microsoft\Windows
NT\CurrentVersion\RegisteredOrganization

(对于64位os,对应的是HKLM\Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization)

这个是在安装操作系统的时候填写的,在安装vs的时候好像也可以进行修改。

再来看一下vs是怎么取得这个值的:

vs在安装时,会安装所有需要的模板在C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates,创建新项目时,vs根据我们选择的项目,复制项目文件到目标文件夹,并替换相应的项
例如我们选择C# 控制台程序,对应的模板是C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\Windows\1033\ConsoleApplication.zip, 其中的AssemblyInfo.cs 的部分内容为:[assembly: AssemblyTitle("$projectname$")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("$registeredorganization$")]
[assembly: AssemblyProduct("$projectname$")]
[assembly: AssemblyCopyright("Copyright © $registeredorganization$ $year$")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("$guid1$")]
这样,我们也可以修改相应的模板或添加新的模板以满足我们的实际需要

参考

http://msdn2.microsoft.com/en-us/library/eehb4faa(VS.80).aspx

Assembly Information Problems

No comments: