我目前有两个项目,项目X,项目Y和项目Z(仅包含映射)
Project X是一个FluentNhibernate项目,它包含我的sessionfactories和类似的东西.所以这也是映射加载和事物的地方(这很重要,我怀疑它可能是我遇到的问题的全部原因)
现在,在Project X中,我引用了一个使用Microsoft.sqlServer.Types.dll的程序集.
项目Y是一个使用项目X进行数据库连接的服务.
所有的probjects都可以在我的开发机器上完美地查找和运行,但是当部署到我们的服务器时,它们无法正常运行(运行时错误).错误是非常模糊的,因为它指向缺少FluentNHibernate程序集,但事实并非如此.
Procmon.exe幸运地显示代码试图加载Microsoft.sqlServer.Types.dll,因为服务器没有安装sql Server(我的客户端不是,但它有一个管理工作室,很可能安装此.DLL以及) .
到目前为止一直很好,复制了DLL并且它工作了(耶!).
现在我想我将程序集添加到项目X以确保使用项目X将此引用复制到其他项目.这没有发生….所以我尝试将“复制本地”设置设置为true.
遗憾的是,这仍然没有将.dll复制到引用项目Y.
有没有办法让这种情况发生,或者这个Visual Studio是否聪明并且意识到Project Y不需要这个.dll因此拒绝复制它?
(由于Project Z需要实际参考,Project X加载此程序集@运行时,Z和X之间没有“硬”参考)
任何Stackoverflow天才都可以对此有所了解,因为老实说,我想知道为什么它会以这种方式运行(理想情况下是一种让它表现得像我想要的方式).
您还在谈论Microsoft.sqlServer.Types.dll对吗?
我前段时间遇到了同样的问题,实际上不应该复制和重新分发sqlserver类型. “安装”它的正确方法是下载sql server运行时(包含在sql server管理工具中,这就是它在本地适用的原因).
因为它是在不久前,我不是100%确定以下信息是否正确并且可行,但只是尝试仅安装Microsoft® System CLR Types for Microsoft® SQL Server® 2012.在此下载页面上展开“安装说明”并向下滚动到“CLR类型”下载…
使用this link for SQL Server 2008
在目标服务器上安装它.这只会安装运行此类型dll所需的东西……