相同GUID对应用程序的影响

时间:2011-08-29 08:20:58

标签: c# assemblies guid

每当我有一个新的C#项目时,我经常复制/重命名现有的C#项目,以便重用大部分代码。这意味着进入Assembly Info并在那里重命名项目。在过去,我并没有真正打扰重命名GUID。

这是一种糟糕的编程习惯吗?如果用户使用相同的GUID打开另一个程序,是否会对用户产生负面影响?

我绝不是一个专业的程序员,但是我顺便过去,随着时间的推移我想出了一些事情。欢迎任何建议。

4 个答案:

答案 0 :(得分:4)

我会说盲目复制/粘贴与智能重用通常是一种不好的做法,但如果你更新assemblyInfo中的值,你可能会安全。

如果我复制该文件,我个人总是为每个项目分配一个不同的Guid,但无论如何AssemblyGuid属性仅用于COM互操作性,所以如果您正在制作纯.NET类库或应用程序,那么{ {1}}设置为false,因为您没有通过ComVisible公开任何内容,您不必担心,并且不会对其他任何内容产生任何影响。

答案 1 :(得分:2)

如果您经常复制/粘贴,请考虑将公共代码提取到库中并从其他项目中引用它。当您更改修复错误时,由于减少了维护,这具有优势。

答案 2 :(得分:1)

这取决于GUID的用途。我知道可以导致严重(但微妙)并发症的GUID的一些重复使用是:

  1. 以任何方式向COM公开的GUID。如果注册了两个具有相同GUID的COM组件,则会出现非常混乱且几乎无法解决的冲突。
  2. GUID,它们是安装项目中的产品ID。遇到卸载不同产品和/或以其他方式阻止安装的情况并不是很有趣。
  3. SharePoint中的大多数GUID。 (列类型,计时器作业等)
  4. 最后,如果可能的话,我会寻找其他“重复使用”的方法。

    快乐的编码。

答案 3 :(得分:0)

我不知道.Net,但在大多数语言中,您可以将可重用代码打包到库中。只在一个项目中将源保存到库中,然后从每个主应用程序链接到库的二进制文件。

如果您坚持使用copy-n-paste代码重用,您很快就会发现维护成为一场噩梦。将可重用代码保存在一个地方要好得多,这样当您修复错误时,所有使用它的程序都会修复它。