给微软的IEWebControls加上强名称

微软提供的 IEWebControls 安装包里的程序编译出来的Microsoft.Web.UI.WebControls.dll是没有强名称的。当我在用它的时候,由于它没有强名称,我不得不取消的应用程序的强名称。而我发现,微软提供的这个安装包安装以后的文件夹中是包含源程序的,而且,它就是在批处理里面通过 CSC.exe 命令编译成 DLL 文件的,那么我可以不可以用自己的 KEY 签名,使编译出来的 DLL 具有强名称呢?我详细的检查了它提供的源程序,在“C:\Program Files\IE Web Controls\src”(默认安装路径)下有一个“ Version.cs ”文件,它的全文如下:

/------------------------------------------------------------------------------

// Copyright (c) 2000-2003 Microsoft Corporation. All Rights Reserved.

//------------------------------------------------------------------------------

using System.Reflection;

using System.Runtime.CompilerServices;

using System.Web.UI;

[assembly:AssemblyVersion("1.0.2.226")]

[assembly:AssemblyTitle("Microsoft IE WebControls")]

[assembly:AssemblyDescription("(Custom Build)")]

[assembly:AssemblyConfiguration("")]

[assembly:AssemblyCompany("Microsoft Corp.")]

[assembly:AssemblyProduct("Microsoft IE WebControls (Custom Build)")]

[assembly:AssemblyCopyright("Copyright (C) 2000-2003 Microsoft Corp. All rights reserved.")]

[assembly:AssemblyTrademark("")]

[assembly:AssemblyCulture("")]

[assembly:TagPrefixAttribute("Microsoft.Web.UI.WebControls", "iewc")]

哦,程序集的定义都在这里,我要是加上密钥的定义是否就可以生成带强名称的 DLL 呢?

于是,在这个文件的最后增加了下面定义:

[assembly: AssemblyKeyFile("c:\\ my key.snk")]

然后,重新运行批处理程序“ builder .bat ”重新编译 DLL 。经过确认,新生成的 DLL 就有了强名称了。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus