我有一个visual studio解决方案.我在解决方案中有很多项目.有一个主要项目作为启动并使用其他项目.有一个项目说"ProjectX".它的参考被添加到主项目中.ProjectX引用了另一个不是解决方案的.NET dll(例如abc.dll).
现在这个abc.dll应该被复制到主项目的bin/debug文件夹中,但它不会被复制到那里.为什么不被复制,任何已知的原因?
这个问题可能已被多次询问过,也许我只是在使用谷歌的搜索功能以及谷歌这个问题,但我还没有找到这个问题的答案.
我目前有两个项目,项目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天才都可以对此有所了解,因为老实说,我想知道为什么它会以这种方式运行(理想情况下是一种让它表现得像我想要的方式).
.net reference visual-studio-2010 fluent-nhibernate .net-assembly