6
使用.dll文件比将.cs文件链接到项目的优势(对于我自己的通用帮助程序类/扩展方法)
我有一个帮助程序项目,可在我创建的所有应用程序中使用。它包含一些扩展方法和一堆通用帮助程序类,控件等。我会不时更新/扩展帮助程序项目。这些通常是小型且无关的项目,而我是唯一从事这些项目的人。 我尝试了两种使用方法 将.cs文件直接添加(添加为链接)到使用它们的每个项目中 将其编译为.dll并将其添加为参考 我看到了这些方法的一些优点和缺点。 第一个: 更简单,因为帮助程序类被编译到exe文件中,所以我经常可以很容易地提供一个可以正常工作的.exe文件。因为我添加为链接,所以我可以肯定的是,每当构建使用该帮助程序的任何项目时,该帮助程序文件都是最新版本。 甚至更简单,因为我可以分开文件,因此可以在.NET 4.0上良好运行的扩展方法与需要.NET 4.5的扩展方法分开引用,这意味着整个应用程序都可以在.NET 4.0上运行 允许通过代码进行调试,并具有断点等的所有优点。 似乎不是“最佳实践” 第二个: 似乎是正确的方法,但是: 需要我提供一个单独的.dll文件,由于某种原因,该文件对用户来说要困难得多(他们倾向于在没有.dll的情况下共享我的程序,然后该文件在启动时崩溃) 当它被编译成一个.dll时,它将需要.NET的最高版本-我的许多用户都没有.NET 4.5,并且只有我的helper类的某些元素需要这样做,这意味着我可以强迫某些人无故更新他们的系统 我还需要确保每当我更新任何程序时,我都还提供.dll文件-即使我不知道自上一个版本以来是否已对其进行过更改(可能已经更改了,但是它最好是同一版本)。在不跟踪程序集版本的情况下,我看不到一种简单的确定方法,这是额外的工作。现在,当我更新程序时,我只提供更新的exe,并且我希望使其保持小巧和低调。 那么,在这里使用.dll文件的实际好处是什么?请注意,我是唯一编辑所有应用程序和帮助文件的代码的人。 另外,需要澄清的是-应用程序通常很少,而helper类中包含的代码对所有应用程序都是完全通用的(一些简单的字符串比较,路径或XML操作等) 实际上,有人让我意识到刚才还有第三种选择。由于我在separte项目中具有帮助程序代码,因此可以将该项目添加到我每个单独应用程序的解决方案中-该工作方式类似于针对单个文件的“添加为链接”,但我只添加了一个项目...但是正如Doc Brown所注意到的,这实质上意味着无论如何都需要将.dll添加到项目中... 另一种有利于不使用dll文件的事情是能够主动地通过helper类进行调试...