C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: VS2008 セットアッププロジェクトについて


(過去ログ 56 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■31526 / inTopicNo.1)  VS2008 セットアッププロジェクトについて
  
□投稿者/ pgm300 (1回)-(2009/01/23(Fri) 11:45:36)

分類:[インストーラ全般] 

2009/01/23(Fri) 13:12:26 編集(投稿者)
2009/01/23(Fri) 11:48:17 編集(投稿者)
2009/01/23(Fri) 11:46:50 編集(投稿者)

開発環境:VS2008 Pro
OS :Vista Bisiness

こんにちは。VS2008のセットアッププロジェクトでどうしても回避
できない現象にはまってしまったので、質問させて頂きます。

以下のような依存関係のあるプロジェクト構成で、

A.exe---a.dll
|
--b.dll

B.exe---a.dll
|
--c.dll

(a.dllは共通ライブラリのDLLです。)

新規にセットアッププロジェクトをソリューションに追加し、
そのセットアッププロジェクトにa.exeを作りだすプロジェクトの
プロジェクト出力を追加(b.exeについても同様に追加)すると、
「見つかった依存関係」にa.dll、b.dll、c.dll
が追加されます。
そのうちa.dllに関してはA.exe,B.exe両方から参照されているので、
2つ追加され、そのままビルドすると、おなじみの
「警告: 複数のオブジェクトのターゲットの場所が同じです。」が発生します。

外国の方で同じ現象にさいなまれている方があるようで、掲示板に書き込みを
見つけましたが、解決には至っておられないようです。
厳密名を付けているアセンブリの参照とそうでないアセンブリの参照の時に
発生するといった内容でしたが、当方は厳密名はつけておりませんし、
そもそも参照はすべてプロジェクト参照です。

で、ここからが質問したいポイントです。

dllのインストーラは別で用意することにして(理由は諸々あります。)
上記で作成したセットアッププロジェクトではA.exe,B.exeのみをインストールする
ようにしようと、「見つかった依存関係」に表示されているdllのexcludeプロパティ
をfalseに変更し、ビルドしたところ希望通りに作成できました。

が、

ソリューションを閉じ、再度VSを起動すると、falseに設定したexcludeプロパティ
が勝手にTrueになっており、それに気付かずビルドすると、
「警告: 複数のオブジェクトのターゲットの場所が同じです。」が発生します。

実は上記に書かせて頂いた構成は当該の環境をデフォルメしたものでして、
本当はもっと依存しているdllの数が多く、2つ重複するものもあれば、
4つ重複してくるものもあります。


ですので、毎回excludeを設定して回るわけにもいかないので困っています。

ずっと現象を切り分けた結果、「見つかった依存関係」に表示されている内容の
内、複数の参照先から参照されているdll(重複して表示されているdll)だけが、
ソリューションを再度開いた時にexcludeプロパティがtrueになるようです。
しかも、プロジェクトファイル(.vdproj)内をテキストエディタで確認すると、
ファイルに記録されているexcludeプロパティはfalseとなっています。
(VSS管理もしておりますので、履歴等確認しても更新された形跡がありません)
このことからIDEのバグかと推測する余地があるのですが、確信に至らず
質問させて頂いた次第です。

長文になりましたが、もし回避策等ご存じの方がおられましたら
相談に乗って下さい。
宜しくお願い致します。


引用返信 編集キー/
■31554 / inTopicNo.2)  Re[1]: VS2008 セットアッププロジェクトについて
□投稿者/ とっちゃん (364回)-(2009/01/23(Fri) 15:21:40)
とっちゃん さんの Web サイト
No31526 (pgm300 さん) に返信

検証していませんし、確証があるわけじゃありませんが

> ずっと現象を切り分けた結果、「見つかった依存関係」に表示されている内容の
> 内、複数の参照先から参照されているdll(重複して表示されているdll)だけが、
> ソリューションを再度開いた時にexcludeプロパティがtrueになるようです。
> しかも、プロジェクトファイル(.vdproj)内をテキストエディタで確認すると、
> ファイルに記録されているexcludeプロパティはfalseとなっています。
> (VSS管理もしておりますので、履歴等確認しても更新された形跡がありません)
> このことからIDEのバグかと推測する余地があるのですが、確信に至らず
> 質問させて頂いた次第です。
>
ということですので、ほぼ100%に近い確率でバグでしょう。

一応、確認です。

変更したプロジェクトで、すべて保存、やセットアッププロジェクトの保存などは行っていますよね?

もしそうであれば、再現可能な(VirtualPCを使ってもいいので確実に複数環境で再現できる)極小のソリューションを用意し
それを添付する形で https://connect.microsoft.com/VisualStudioJapan からバグレポートをあげることをお勧めします。

挙動を見る限り、外部から修正することはほぼ100%不可能ですし、回避策も見受けられないような気がします。
そして、おそらくMS(この場合、日本ではなく本社のほう)でも、誰も気が付いていないものと思われます。
今後もVSセットアップを使う予定があるのであれば、積極的にフィードバックすることをお勧めします。

フィードバックしたら、教えてください。こっちでもチェックしてVoteあげますのでw

引用返信 編集キー/
■31569 / inTopicNo.3)  Re[2]: VS2008 セットアッププロジェクトについて
□投稿者/ 渋木宏明(ひどり) (1036回)-(2009/01/23(Fri) 22:38:32)
渋木宏明(ひどり) さんの Web サイト
> ということですので、ほぼ100%に近い確率でバグでしょう。
(略)
> 今後もVSセットアップを使う予定があるのであれば、積極的にフィードバックすることをお勧めします。
>
> フィードバックしたら、教えてください。こっちでもチェックしてVoteあげますのでw

Vote できるのは Connect ね。

Connect はサポート窓口ではないので、Connect にフィードバックを登録しても、直接的に問題が解決される可能性は非常に低いです。
(VS2010 や、その先の製品に対する改良の提案、という意味では Connect に登録する意味はあるけど)

実務とかで、この問題が解決しないと非常に困るような場合は Connect ではなく、正規のサポート窓口に問い合わせしましょう。

MS 製品のバグであることが認められれば、サポート費用は無償になります。

そして、問題の内容によっては hotxfix をもらえる場合もあります。(一般のサポート契約だと、hotfix 作成の依頼まではできません)



引用返信 編集キー/
■31743 / inTopicNo.4)  Re[3]: VS2008 セットアッププロジェクトについて
□投稿者/ pgm300 (2回)-(2009/01/28(Wed) 12:55:14)
2009/01/28(Wed) 13:38:44 編集(投稿者)
2009/01/28(Wed) 13:19:32 編集(投稿者)

返信遅くなり申し訳ございません。

返信ありがとうございます。

以下のようにサポートに問い合わせてみようとしましたが、
サポートに入っていないと、バグであっても受け付けてくれない
のです。

バグであったら、サポート費用が無料になるのに、サポートに入っていなければ
バグ報告ができないという何とも寂しい結果になってしまいました。

当面の回避として、インストーラーをアセンブリを含める形で
作成するようにし、プロジェクト出力は直接使用しないように
考えました。

解決!とはいきませんでしたが、本当にありがとうございました。


>>ということですので、ほぼ100%に近い確率でバグでしょう。
> (略)
>>今後もVSセットアップを使う予定があるのであれば、積極的にフィードバックすることをお勧めします。
>>
>>フィードバックしたら、教えてください。こっちでもチェックしてVoteあげますのでw
>
> Vote できるのは Connect ね。
>
> Connect はサポート窓口ではないので、Connect にフィードバックを登録しても、直接的に問題が解決される可能性は非常に低いです。
> (VS2010 や、その先の製品に対する改良の提案、という意味では Connect に登録する意味はあるけど)
>
> 実務とかで、この問題が解決しないと非常に困るような場合は Connect ではなく、正規のサポート窓口に問い合わせしましょう。
>
> MS 製品のバグであることが認められれば、サポート費用は無償になります。
>
> そして、問題の内容によっては hotxfix をもらえる場合もあります。(一般のサポート契約だと、hotfix 作成の依頼まではできません)
>
>
>
引用返信 編集キー/
■31746 / inTopicNo.5)  Re[4]: VS2008 セットアッププロジェクトについて
□投稿者/ とっちゃん (368回)-(2009/01/28(Wed) 13:28:21)
とっちゃん さんの Web サイト
No31743 (pgm300 さん) に返信

> 以下のようにサポートに問い合わせてみようとしましたが、
> サポートに入っていないと、バグであっても受け付けてくれない
> のです。
>
> バグであったら、サポート費用が無料になるのに、サポートに入っていなければ
> バグ報告ができないという何とも寂しい結果になってしまいました。
>
サポートの場合は、バグ報告をするためにまずサポート契約を結ぶ必要があります。
MSDNサブスクリプションなどに入っていれば、そっち経由でインシデント
(サポートを受けるためのチケットのようなもの)があるはずですので確認してみると
よいかもしれません。

> 当面の回避として、インストーラーをアセンブリを含める形で
> 作成するようにし、プロジェクト出力は直接使用しないように
> 考えました。
>
アセンブリを含める形?
いまいちよくわからんのですが、VSセットアップ以外の手段でもいいのなら
WiX もしくは、InstallShield という選択肢も検討してみてはどうでしょう?

どちらも、インストーラ作るうえではいろいろ考慮したいさまざまな案件を
VSセットアップとは、次元の異なるレベルで実現することができますよ。

引用返信 編集キー/
■31751 / inTopicNo.6)  Re[5]: VS2008 セットアッププロジェクトについて
□投稿者/ pgm300 (6回)-(2009/01/28(Wed) 13:37:45)
2009/01/28(Wed) 13:38:24 編集(投稿者)

参考になるご意見ありがとうございます。

サポートに関しては、上司に掛け合ってみます。
「アセンブリを含める形」というのは、ビルドした成果物(dll等)を
ファイル追加の形で入れると、依存関係が正しく(いや、ただしくないのか?)
IDEに理解されるようで、Excludeプロパティがちゃんと設定した状態で
保存されます。

Install Shield等も検討してみたいと思います。

ありがとうございました。

No31746 (とっちゃん さん) に返信
> ■No31743 (pgm300 さん) に返信
>
>>以下のようにサポートに問い合わせてみようとしましたが、
>>サポートに入っていないと、バグであっても受け付けてくれない
>>のです。
>>
>>バグであったら、サポート費用が無料になるのに、サポートに入っていなければ
>>バグ報告ができないという何とも寂しい結果になってしまいました。
>>
> サポートの場合は、バグ報告をするためにまずサポート契約を結ぶ必要があります。
> MSDNサブスクリプションなどに入っていれば、そっち経由でインシデント
> (サポートを受けるためのチケットのようなもの)があるはずですので確認してみると
> よいかもしれません。
>
>>当面の回避として、インストーラーをアセンブリを含める形で
>>作成するようにし、プロジェクト出力は直接使用しないように
>>考えました。
>>
> アセンブリを含める形?
> いまいちよくわからんのですが、VSセットアップ以外の手段でもいいのなら
> WiX もしくは、InstallShield という選択肢も検討してみてはどうでしょう?
>
> どちらも、インストーラ作るうえではいろいろ考慮したいさまざまな案件を
> VSセットアップとは、次元の異なるレベルで実現することができますよ。
>
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -