いくつかの Windows サービスのインストーラーをビルドする VS2008 展開プロジェクトがあります。
各サービスは、いくつかの異なるプロジェクトを参照します。
CustomerName.MailSendingService -> CustomerName.Network -> CustomerName.Data -> 顧客名.セキュリティ CustomerName.ProductIntegrationService -> CustomerName.Core -> 顧客名.セキュリティ
Windows サービス プロジェクト、それらが参照するプロジェクト、および展開プロジェクトはすべて、同じ VS2008 ソリューションにあります。
展開プロジェクトのファイル システム エディターで、Windows サービス プロジェクトからのプライマリ出力を追加しました。
Windows サービス プロジェクトの主要な出力には、参照されているプロジェクトからの DLL が含まれることを期待しています。ただし、展開プロジェクトがビルドされると、参照されているプロジェクトの 1 つからの DLL が見つかりません。(CustomerName.ProductIntegrationService
欠落していCustomerName.Security
ます)
驚くべきことに、Windows サービスによって参照される他のプロジェクトの DLL が存在します。1 つのプロジェクトの出力だけが欠落しています。
(編集) 参照プロパティ ウィンドウで、参照が [ローカルにコピー] に設定されていることを確認しました。参照プロジェクトの DLL は Windows サービス プロジェクトのbin\Release
フォルダーに配置されますが、展開プロジェクト用にビルドされた MSI ファイルにはパッケージ化されません。
(編集 2) Joseph Daigle の提案に従って、依存関係がプライマリ出力の依存関係リストにあり、「除外」とマークされていないことを確認したため、この問題の原因ではないようです。
1 つのプロジェクトの出力だけが失われるのはなぜですか?