在项目模板中包含对我自己的程序集的引用的最佳方法是什么?

Tor*_*gen 5 visual-studio-2010 project-template visual-studio-templates

我们用C#开发了一个库,现在我想创建一个项目模板来帮助正确使用库.

我希望新项目包含对库程序集的引用,但是不希望不必将程序集部署到GAC,或者依赖于驻留在某个特定位置的程序集.

我在想的是在项目模板.zip文件中包含.dll.这意味着它将最终位于新项目的项目文件夹中的某个位置.也许在名为Lib的文件夹中.然后项目文件中的引用提示可以指向该文件夹.这是一个好主意吗?我可能面临什么问题?

是否有一些机制可以将这些第三方库包含在我不知道的项目模板中?你是怎么解决这个问题的?当然,我不是第一个.

And*_*per 2

我过去曾不得不解决这个问题。在一种情况下,它是安装到 GAC 的日志库,这意味着 Reference 元素只需要程序集名称。在另一种情况下,我们将库安装到文件系统,创建一个包含该位置的注册表项(以防用户变得可爱并更改了我们的安装位置),并使用项目模板向导查找注册表项并填充替换项在参考的提示路径中具有正确的位置。(注意:模板向导方法要求您将向导的程序集安装到 GAC,这听起来像是您试图避免的......)

如果您不希望将库安装在 GAC 或特定位置,那么将程序集包含在项目中的方法几乎是您唯一剩下的选择。从积极的一面来看,项目模板的部署相当简单,您不必与 GAC、自定义向导等搞混。从消极的一面来看,如果您创建了库的新版本,您的用户将需要更新每个项目的库副本。