当前位置:  开发笔记 > 开发工具 > 正文

部署项目中缺少项目依赖项

如何解决《部署项目中缺少项目依赖项》经验,为你挑选了1个好方法。

我有一个VS2008部署项目,它为几个Windows服务构建了一个安装程序.

每个服务引用几个不同的项目:

CustomerName.MailSendingService
 -> CustomerName.Network
 -> CustomerName.Data
 -> CustomerName.Security

CustomerName.ProductIntegrationService
 -> CustomerName.Core
 -> CustomerName.Security

Windows服务项目,它们引用的项目以及部署项目都在同一个VS2008解决方案中.

我在部署项目的文件系统编辑器中添加了Windows服务项目的主要输出.

我的期望是Windows服务项目的主要输出将包括来自引用项目的DLL.但是,在构建部署项目时,缺少其中一个引用项目的DLL.(CustomerName.ProductIntegrationService缺失CustomerName.Security)

疯狂地,存在由Windows服务引用的其他项目的DLL; 只缺少一个项目的输出.

(编辑)我已经验证了引用在参考属性窗口中设置为Copy Local.引用项目的DLL放在Windows服务项目的bin\Release文件夹中,但未打包在为部署项目构建的MSI文件中.

(编辑2)根据Joseph Daigle的建议,我检查了依赖项是在主要输出的依赖项列表中,并且它没有标记为"排除",因此这似乎不是导致此问题的原因.

为什么只丢失一个项目的输出?



1> Chad Pavlisk..:

在重现相同的可疑msi缺陷后,我还有几件事需要补充.

1)当我向安装程序添加共享相同检测到的依赖项的第二个项目输出时,它没有自动添加依赖项.我删除了两个项目输出并以相反的顺序添加它们.添加的第二个项目输出从未添加检测到的依赖项.这排除了项目的任何配置或代码问题以及如何添加引用.它总是第二个失败.

2)在使用"手动添加检测到的程序集"解决方法后,我的团队确实遇到了第二个问题.最初我们从'\ Program Files\xxx'中的位置添加了依赖项,但在64位计算机上遇到了构建问题,其中相同的依赖项位于'\ Program Files(x86)\ xxx'文件夹中,即使VS足够智能在获取引用时处理此问题.

手动添加程序集的正确方法是导航到bin文件夹并添加本地复制的程序集.这可确保在x86或x64计算机上存在正确的程序集.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有