有一个旧的 VB.Net 项目,它决定用 C# 恢复和重写。为方便起见,决定在同一解决方案中添加一个新项目。新项目在生成项目时会收到一个 GUID,这当然与旧解决方案中使用的 GUID 不同。该项目未对 COM ( [assembly: ComVisible(false)]) 开放,并且未在全局程序集缓存 (GAC) 中注册。
如果您打算完全重写应用程序并仅在将来使用它,构建 GUID 是否应该与旧的相同?在不同的程序集中使用相同的 GUID 会有什么后果?
有一个旧的 VB.Net 项目,它决定用 C# 恢复和重写。为方便起见,决定在同一解决方案中添加一个新项目。新项目在生成项目时会收到一个 GUID,这当然与旧解决方案中使用的 GUID 不同。该项目未对 COM ( [assembly: ComVisible(false)]) 开放,并且未在全局程序集缓存 (GAC) 中注册。
如果您打算完全重写应用程序并仅在将来使用它,构建 GUID 是否应该与旧的相同?在不同的程序集中使用相同的 GUID 会有什么后果?
COM 兼容性需要程序集 GUID。除了程序集之外,GUID 自动或通过GuidAttribute属性分配给类、结构、接口和枚举,也仅用于 COM 兼容性。
对于正常使用,将程序集放在 GAC 中或将其导入 MS SQL Server 上的数据库中,它不会以任何方式使用,好吧,除非您自己出于某些目的通过反射阅读它,这有时是必要的。因此,无论 GUID 如何,您都可以安全地重写您的项目。