我尝试使用new System.EnterpriseServices.Internal.Publish().GACInstall("Foo.dll");
将程序集安装到GAC中,但我无法在c:\windows\assembly\gac_msil文件夹中找到它。同时我也没有收到securityexception异常信息。请问有谁能帮助我吗?
我尝试使用new System.EnterpriseServices.Internal.Publish().GACInstall("Foo.dll");
将程序集安装到GAC中,但我无法在c:\windows\assembly\gac_msil文件夹中找到它。同时我也没有收到securityexception异常信息。请问有谁能帮助我吗?
首先,请确保已签名。因为您没有收到任何异常,我假设它已经签名了。此外,如果它是一个 .net 4.0 的程序集,它将被GAC在一个新的位置上 @ %windir%\Microsoft.NET\assembly\。
更多信息请参见:.NET 4.0有一个新的GAC,为什么?
更新:程序集签名
右键单击该程序集项目并进入“属性”。在“项目属性”屏幕上选择“签名”选项卡。勾选“签名程序集”并在“选择强名称密钥文件”中选择“新建”。这将打开一个对话框,在其中您必须指定密钥名称。我通常使用解决方案名称作为我的密钥名称。您也可以为密钥设置密码(根据您的喜好)。完成后,在对话框上点击“确定”,然后构建您的项目。现在尝试再次将其GAC。
快速建议:如果您在项目中有多个需要GAC的程序集,可以共享同一个密钥文件,而不是为每个程序集生成一个新的密钥文件。我通常将我的密钥文件放在与我的解决方案文件相同的位置,并在解决方案中的项目之间共享它。