.net 如何对多个开发人员共享的程序集进行强名称命名?

.net 如何对多个开发人员共享的程序集进行强名称命名?,.net,com,.net-assembly,strongname,delay-sign,.net,Com,.net Assembly,Strongname,Delay Sign,我和我的同事有一个C项目,必须使用或Excel interop向COM注册。因此,必须使用强名称密钥对程序集进行签名。通过VisualStudio生成了一个密钥文件,并提交到源代码存储库 每次新开发人员克隆git存储库时,他们必须转到项目属性的“签名”选项卡并重新输入.pfx文件的密码,或者使用命令行上的sn.exe重新输入密码。这两种方法都不理想,因为这两种方法都需要手动步骤和简单、广为人知的密码的口头交流 我们尝试了允许构建继续进行的程序集,但不允许我们向COM注册 有没有一种方法可以在不强

我和我的同事有一个C项目,必须使用或Excel interop向COM注册。因此,必须使用强名称密钥对程序集进行签名。通过VisualStudio生成了一个密钥文件,并提交到源代码存储库

每次新开发人员克隆git存储库时,他们必须转到项目属性的“签名”选项卡并重新输入.pfx文件的密码,或者使用命令行上的sn.exe重新输入密码。这两种方法都不理想,因为这两种方法都需要手动步骤和简单、广为人知的密码的口头交流

我们尝试了允许构建继续进行的程序集,但不允许我们向COM注册


有没有一种方法可以在不强制每个人手动更新.pfx密钥文件的情况下实现这一点?谢谢

如果你不担心有人接触到你的.snk并使用它没有好处,那么你不需要密码。没有密码,就没有提示。

如果您不担心有人接触到您的.snk并使用它没有好处,那么您不需要密码。无密码,无提示。

[ComVisible]程序集不需要强名称。regasm.exe的默认操作是假定将程序集部署到GAC中。但是,这不是一个要求,请为它提供/codebase选项,以便在其所在的目录中注册它。通常是项目的生成目录


这也是VisualStudio在“生成属性”中勾选“注册COM互操作”选项时所做的操作。现在,简单地构建这个项目就足够了。一定要检查这是否仍然与您的安装程序兼容。有DLL地狱的含义,最好通过隔离来解决。

[ComVisible]程序集不需要强名称。regasm.exe的默认操作是假定将程序集部署到GAC中。但是,这不是一个要求,请为它提供/codebase选项,以便在其所在的目录中注册它。通常是项目的生成目录


这也是VisualStudio在“生成属性”中勾选“注册COM互操作”选项时所做的操作。现在,简单地构建这个项目就足够了。一定要检查这是否仍然与您的安装程序兼容。有DLL地狱的影响,最好通过隔离来解决。

谢谢……这很有效。在通过单击获得的“创建强名称密钥”对话框中,我必须取消选中“使用密码保护密钥文件”。谢谢…这很有效。在通过单击获得的“创建强名称密钥”对话框中,我必须取消选中“使用密码保护密钥文件”。感谢您的回复。你说得对。重新读取regasm.exe输出时,警告不是错误,即:regasm:警告RA0000:向/codebase注册未签名的程序集可能会导致您的程序集干扰可能安装在该程序集上的其他应用程序,这些程序仅用于已签名的程序集。请为您的程序集指定一个强名称并重新注册。类型注册成功这是一个警告,但它明确指出/codebase开关仅用于已签名的程序集。因此,接受错误并继续前进似乎很奇怪。感谢您的回复。你说得对。重新读取regasm.exe输出时,警告不是错误,即:regasm:警告RA0000:向/codebase注册未签名的程序集可能会导致您的程序集干扰可能安装在该程序集上的其他应用程序,这些程序仅用于已签名的程序集。请为您的程序集指定一个强名称并重新注册。类型注册成功这是一个警告,但它明确指出/codebase开关仅用于已签名的程序集。因此,仅仅接受错误并继续前进似乎很奇怪。