将程序集安装到GAC中

我尝试使用new System.EnterpriseServices.Internal.Publish().GACInstall("Foo.dll");在GAC中安装程序集new System.EnterpriseServices.Internal.Publish().GACInstall("Foo.dll"); 但我找不到安装在c:\ windows \ assembly \ gac_msil文件夹中。 我也没有收到securityexception。 谁能帮我

首先,确保它已签名。 我认为这是因为你没有得到任何例外。 此外,如果它是.net 4.0程序集,它将在新位置@%windir%\ Microsoft.NET \ assembly \ GACed

更多相关内容: .NET 4.0有一个新的GAC,为什么?

更新:签署大会

右键单击Assembly项目,然后转到“Properties”。 在“项目属性”屏幕上,选择“签名”选项卡。 选中“签署程序集”,然后在“选择强名称密钥文件”中选择“新建”。 这将打开一个对话框,您必须在其中指定密钥名称。 我通常使用解决方案名称作为我的密钥名称。 您也可以使用密码保护密钥(您的偏好)。 完成后,在对话框中单击“确定”并构建项目。 现在尝试再次GAC。

快速建议:如果您希望GAC项目中有多个程序集,则可以共享相同的密钥文件,而不是为每个组件生成一个新的程序集。 我通常将我的密钥文件放在我的解决方案文件所在的同一位置,并在解决方案中的项目之间共享。