这个问题可能已经被问过多次,也许我只是不擅长使用这里的搜索功能以及谷歌,但我还没有找到这个问题的答案。
我目前有两个项目,项目 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 是否聪明并意识到项目 Y 不需要这个 .dll 并因此拒绝复制它?
(由于项目 Z 需要实际引用,并且项目 X 在运行时加载此程序集,因此 Z 和 X 之间没有“硬”引用)
任何 Stackoverflow 天才都可以对此有所了解,因为老实说,我想知道它为什么会这样(理想情况下是让它表现得像我想要的那样)。