我尝试使用在GAC中安装程序集
new System.EnterpriseServices.Internal.Publish().GACInstall("Foo.dll");
但我找不到安装在c:\ windows \ assembly \ gac_msil文件夹中。我也没有收到securityexception。任何人都可以帮助我
答案 0 :(得分:11)
首先,确保它已签名。我认为这是因为你没有得到任何例外。 此外,如果它是.net 4.0程序集,它将在新位置进行GAC处理@%windir%\ Microsoft.NET \ assembly \
有关此内容的更多信息:.NET 4.0 has a new GAC, why?
更新:签署程序集
右键单击Assembly项目并转到“Properties”。在“项目属性”屏幕上,选择“签名”选项卡。选中“签署程序集”,然后在“选择强名称密钥文件”中选择“新建”。这将打开一个对话框,您必须在其中指定密钥名称。我通常使用解决方案名称作为我的密钥名称。您也可以使用密码保护密钥(您的偏好)。完成后,在对话框中单击“确定”并构建项目。现在尝试再次GAC。
快速建议:如果您希望GAC项目中有多个程序集,则可以共享相同的密钥文件,而不是为每个组件生成一个新的程序集。我通常将我的密钥文件放在我的解决方案文件所在的同一位置,并在解决方案中的项目之间共享。