想生成一个强名称程序集,引用了一个非强名称程序集里的类型,结果在编译时出错:
error CS1577: 程序集生成失败 -- 引用的程序集“MyTypes”没有强名称
查看MSDN中编号为CS1577的编译器错误,显示如下信息:
程序集生成失败 — 原因
编译的程序集生成部分失败。有关更多信息,请参见 alink 实用工具 (Al.exe) 的错误文档。
再查看AL.exe 工具错误和警告,找到了下面的信息:
al1055 |
引用的程序集“filename”没有强名称 在您要生成带有强名称的程序集并引用没有强名称的程序集时,此错误便会发生。
如果程序集有强名称,它便可安装到全局程序集缓存中。因此,引用的程序集还需进入全局程序集缓存。只有带强名称的程序集才能进入全局程序集缓存。
|
由此可见,强名称程序集,只能引用强名称程序集。
分享到:
相关推荐
### 强名称引用非强名称程序集的方法 在.NET框架中,为了确保程序集的唯一性和安全性,引入了强名称的概念。一个具有强名称的程序集包含了一个公钥标记、版本号、文化信息等,这使得它能够在全局程序集缓存(GAC)...
### VS2003中设计强名称程序集并制作安装入GAC的MSI #### 知识点一:理解强名称程序集与GAC - **强名称程序集**:在.NET框架中,强名称程序集是一种带有唯一标识符的程序集。这种标识符包含了程序集的名称、版本号...
1. **防止DLL随意引用**:在.NET环境中,强命名程序集可以通过其唯一的公钥/私钥对来防止其他程序未经许可就引用DLL文件。 2. **版本控制**:每个强命名程序集都有一个版本号,这有助于开发者管理不同版本的程序集。...
在.NET框架中,开发应用程序时,我们经常需要引用外部程序集(dll文件)来扩展功能或使用第三方库。"改变应用程序引用程序...在实际工作中,根据项目需求和团队协作情况,选择合适的方法来处理程序集引用是非常关键的。
2. **版本不匹配**:.NET程序可能依赖于特定版本的stdole程序集,而当前系统中安装的版本可能不符合程序的要求。 3. **GAC(全局程序集缓存)问题**:stdole是系统级别的组件,通常会被安装到全局程序集缓存(GAC)...
`LoadAWithPartialName`方法允许开发者仅提供程序集的文本名称,也可以包含公钥标记、版本号或区域性信息,但不强制要求提供完整的引用信息,如名称、版本、区域性及公钥标记。 使用`System.Reflection.Assembly....
在Windows Presentation Foundation (WPF) 中,`MarkupExtension...通过自定义的`MarkupExtension`类,我们可以轻松地在XAML声明中引用程序集,并在运行时解析其内容,这在创建灵活且高度定制的WPF用户界面时非常实用。
强命名不仅仅提供了安全性和版本控制,还有助于解决依赖性问题,因为强命名的程序集可以在引用时明确指定版本,从而避免版本冲突。对于那些需要在多应用程序间共享的库,或者需要跨应用程序域(AppDomain)安全运行...
- 依赖关系:当一个程序集引用另一个强命名的程序集时,它可以准确地知道所引用的是哪个版本。 3. **Strong Name Remove 21工具介绍** - Strong Name Remove 21是一款用于删除.NET程序集强名称的工具,尤其适用于...
`AssemblyName`类包含了程序集的名称、版本、公钥等属性。通过调用`AssemblyName.Version`属性,我们可以获取到程序集的版本信息。 5. 示例代码: 下面是一个简单的C#代码示例,展示如何获取当前执行程序的版本...
**jar程序集详解** 在Java开发中,JAR(Java Archive)文件是一种打包格式,用于收集多个类文件、相关的元数据以及资源文件,以便在Java平台上分发和运行。"jar程序集"这一概念,是Java应用程序或库的集合,它们被...
报错:找不到类型或命名空间名称“Server”(是否缺少 using 指令或程序集引用?)但是我的确引用了名字空间using System.Web;为什么呢?因为Server的完整路径是System.Web.HttpContext.Current.Server。using System....
强名称的主要目的是确保程序集的身份不可伪造,增强了安全性和可升级性。本教程将深入讲解如何在C#中为软件源代码使用强名称标识,确保你的程序集在部署和引用时具备更高的可信度。 首先,我们需要理解强名称的组成...
1. 强名称:为了防止恶意替换,可以为程序集添加强名称,即使用公钥/私钥对进行签名。这需要在AssemblyInfo.cs中使用`[assembly: AssemblyKeyFileAttribute("keyfile.snk")]`或`[assembly: ...
1. 创建`AssemblyBuilder`实例,这将定义程序集的名称、位置和权限。 2. 使用`AssemblyBuilder`创建`ModuleBuilder`,模块是程序集中的一个可加载单元。 3. 使用`ModuleBuilder`创建`TypeBuilder`,定义类的基本属性...
3. **动态获取引用**:`Assembly.Load`系列方法允许我们动态加载程序集,如`Assembly.LoadFrom`加载指定路径的程序集,`Assembly.Load`加载由名称或哈希值标识的程序集。 4. **获取类型信息**:一旦加载了程序集,...
为了让Biztalk Server能够识别和调用这个程序集,需要对程序集设置强名称,并将其发布到全局程序集缓存(GAC)中。强名称确保程序集的唯一性,而GAC则是系统级别的存储库,存放已签名的、可供所有应用程序域使用的...
标题中提到的“System.Web中不存在类型或命名空间名称‘Optimization’(是否缺少程序集引用?)”指的是在*** MVC应用程序开发过程中,开发者可能会遇到的一个错误提示。在描述中,介绍了这个错误发生时的解决方法,这...
### VBA程序集及相关实例知识点解析 #### 一、VBA简介 VBA(Visual Basic for Applications)是一种基于Microsoft Visual Basic的宏编程语言,广泛应用于Microsoft Office套件中,包括Excel、Word等软件。VBA使得...
4. **验证程序集**:使用`/v`或`/validate`参数,可以检查一个程序集是否符合强命名的要求,以及是否能成功安装到GAC。 **二、使用Gacutil.exe的步骤** 1. **安装**:在命令行中输入`gacutil /i "path_to_assembly...