2012-08-08 63 views
2

我有两个项目的解决方案。第一个是基本类库项目,其中包含多个服务端点之间共享的类的定义(DataContract.dll)。第二个是SQL CLR项目,它将使用共享程序集中定义的类。在我的本地机器上,我可以使用SQL Server的本地实例注册该程序集,添加对程序集的引用并进行编译。但是,当我将这些代码提交给我们的构建机时,程序集未在服务器上注册。我可以在构建服务器上手动注册程序集,但这对新加入项目的开发人员并且在第一次退房时破坏构建无效。另外,我们的构建服务器会为其构建的临时目录选择一个随机名称,因此构建服务器的数据库实例上的引用可能已过时或缺失。有没有办法从我的SQL CLR项目中引用共享库项目,这样构建服务器和新开发人员将始终具有良好的构建?如何从SQL CLR项目中引用非SQL CLR项目?

+0

也许我的设置与您的不同,但在我的SQLCLR项目中,我可以添加的唯一引用来自部署目标数据库。在我看来,构建服务器需要以相同的方式进行配置。如果这是不可能的,似乎在构建机器的GAC中注册类组件是唯一的选择。 – 2012-08-08 17:49:26

+0

是的,这是我试图解决的限制(共享程序集必须注册一个可由我的开发机器和构建机器访问的数据库,或者程序集必须位于执行编译的机器的GAC中)。构建机器正在清除以前的构建(从而使当前的GAC/DB注册无效),然后在新位置重新构建。这导致缺少参考。 – JadeMason 2012-08-08 18:10:46

回答

0

我以前有过这个问题,但它不一定只是SQLCLR。我发现最好的方法是create my own NuGet server。如果这看起来很复杂,或者你没有这些资源,那么我会建议为共享库创建一个unc共享。您可以创建一个后期构建脚本,在本地成功编译它们之后,将二进制文件复制到unc路径。

相关问题