Ref*_*din 2 .net c# sql-server dll winforms
我有一个winform解决方案,我通过clickOnce部署.有一个主要项目,然后是一个名为的项目psWinForms.该项目有一个Microsoft.ExceptionMessageBox我在自定义错误报告中使用的参考.
我psWinForms在我的主项目中作为参考Copy Local = True.
我Microsoft.ExceptionMessageBox作为一个参考psWinForms使用Copy Local = False & Specific Version = False
在Application Files我有Publish Status =Prerequisite(Auto)
我尝试了各种组合无济于事.
我在这里看看DLL上的测试系统就在那里.
C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies
Run Code Online (Sandbox Code Playgroud)
我正在使用SQL版本9.0.242.0中的ExceptionMessageBox,如果这有所不同,并且用户只安装了SQL 2005 Express(9.0.1399.0).
因此,当我尝试使用此错误抛出错误时,为什么我的应用程序挂起,我感到非常困惑....
您无法自行复制和部署程序集,必须将其作为SQL客户端组件的一部分进行安装.SQL 2008和SQL 2005有不同的客户端组件,您的应用程序必须引用正确的组件.因此,您必须提供两个不同的应用程序,一个用于SQL 2005,一个用于SQL 2008,您的用户必须安装正确的应用程序.从部署异常消息框应用程序:
Microsoft SQL Server安装了异常消息框,并且支持在自定义Windows应用程序中使用该异常消息框以改进异常处理.由于除SQL Server Compact 3.5 SP1之外的所有SQL Server版本都安装了异常消息框,因此您可以在任何已安装SQL Server客户端组件(包括SDK)的计算机上使用它而无需其他配置.
虽然技术上可能部署程序集并将其添加到GAC本身是一种不好的做法,因为您的DLL不会成为正常的Service Pack链和累积升级补丁的一部分.
此外,您最好向MS代表了解是否使用SQL客户端使用许可证部署此dll standalone是否正常.可以在许可下重新分发的每个组件都有一个可供开发人员分发的安装msi.如果这个dll不是一个强大的指标,不允许由第三方(你)重新分配.
更新
实际上,ExceptionMessageBox组件有一个可分发的msi(SQLServer2005_EMB.msi,SQLServer2005_EMB_x64.msi):
在SQL Server 2005 SP1和更高版本中,异常消息框也作为可再发行的安装程序提供,您可以随应用程序一起分发和部署...异常消息框的可再发行安装程序可作为Feature Pack的一部分在线获取对于SQL Server 2005 SP1.