【发布时间】:2020-03-18 00:34:20
【问题描述】:
这个问题可能已经被问过很多次了,也许我只是不擅长使用这里的搜索功能以及谷歌,但我还没有找到这个问题的答案。
我目前有两个项目,项目 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 的其他项目。这没有发生....所以我尝试设置“复制本地”设置为真。
遗憾的是,这仍然没有将 .dll 复制到引用项目 Y。
有没有办法实现这一点,或者这个 Visual Studio 很聪明并且意识到项目 Y 不需要这个 .dll 并因此拒绝复制它?
(由于项目 Z 需要实际引用并且项目 X 在运行时加载此程序集,因此 Z 和 X 之间没有“硬”引用)
任何 Stackoverflow 天才能否对此有所了解,因为老实说,我想知道它为什么会这样(理想情况下是让它表现得像我想要的那样)。
【问题讨论】:
标签: .net visual-studio-2010 reference fluent-nhibernate .net-assembly