- PR -

WindowsアプリとWebアプリとで共通なプロジェクトを参照する場合のソリューションの構成は?

投稿者投稿内容
Ten.
ベテラン
会議室デビュー日: 2003/04/03
投稿数: 67
投稿日時: 2004-02-13 21:35
こんにちは。

WindowsアプリケーションとWebアプリケーションとで共通となる部分を
独立したプロジェクトにし、それをプロジェクト参照しようと思っています。

仮に、以下の3つのプロジェクトがあるとします。

・Winプロジェクト(Windowsアプリケーション)
・Webプロジェクト(ASP.NET Webアプリケーション)
・共通プロジェクト(クラスライブラリ)

WinプロジェクトとWebプロジェクトは共通プロジェクトを参照します。
(WinプロジェクトとWebプロジェクトの間には依存関係がない)

これらを1つのソリューションに含め、ソリューション構成を切り替えて、
WindowsアプリケーションとWebアプリケーションを別々にデバッグ実行しよう
と思いました。

ところが、ソリューション構成にはスタートアッププロジェクトの設定が含まれて
おらず、この方法はできませんでした。
(スタートアッププロジェクトの設定はソリューションの共通プロパティで行う)

長々と説明いたしましたが、お聞きしたいことをまとめると以下のようになります。

1.1つのソリューションに含めて別々にデバッグ実行する方法があるのか?

2.そもそも、このような場合に1つのソリューションにすることが正しいのか?
  (少なくとも一般的なのか)

3.1つのソリューションに含めることが正しくない(一般的ではない)としたら、
  どのような構成にしたら良いのか?

一般論、経験談など何でもかまいませんので、よろしくお願いします。
nodera
大ベテラン
会議室デビュー日: 2003/09/08
投稿数: 200
投稿日時: 2004-02-13 23:14
こんにちは。

分かる範囲でお答えします。

1つのソリューションに両方を含めた場合、ソリューションエクスプローラーでプロジェクトを右クリックし、ポップアップメニューの[デバッグ]-[新しいインスタンスを開始]で、それぞれのプロジェクトをデバッグできます。
Win/Web両方を同時にってのはできませんが、もしかしてそういう意味ですか?
試したことないですが、ソリューションのプロパティにあるマルチスタートアッププロジェクトを設定すればいいのかも。

ひとつのソリューションにするのが正しいか、正しくないかは分かりませんが、自分のところでは基本的にはWebとWinは別のソリューションに分けてます。そしてそれぞれが共通のプロジェクトを参照しています。しかし、全体ビルド用は両方まとめてしまっています(このソリューションでデバッグはしていませんが)



Ten.
ベテラン
会議室デビュー日: 2003/04/03
投稿数: 67
投稿日時: 2004-02-14 00:04
noderaさん、ご返事ありがとうございます。

引用:

1つのソリューションに両方を含めた場合、ソリューションエクスプローラーでプロジェクトを右クリックし、ポップアップメニューの[デバッグ]-[新しいインスタンスを開始]で、それぞれのプロジェクトをデバッグできます。


申し訳ありません。書くのを忘れていましたが、この方法は知っていました。
このやり方がスマートではないので、何か間違っているのかと思った次第です。


引用:

Win/Web両方を同時にってのはできませんが、もしかしてそういう意味ですか?


同時ではなくて、別々にという意味です。
分かりにくい説明ですいませんが、WinとWebで別の人が開発すると思ってください。


引用:

試したことないですが、ソリューションのプロパティにあるマルチスタートアッププロジェクトを設定すればいいのかも。


これを試してみました。
すると、デバッグ実行で見事にWinとWebの両方が起動されました・・・
(もちろん望んでいる形ではありませんが、あまりにも当たり前な結果でおかしかったです)


引用:

ひとつのソリューションにするのが正しいか、正しくないかは分かりませんが、自分のところでは基本的にはWebとWinは別のソリューションに分けてます。そしてそれぞれが共通のプロジェクトを参照しています。しかし、全体ビルド用は両方まとめてしまっています(このソリューションでデバッグはしていませんが)


この場合は3つのソリューションが存在するということでしょうか?
共通プロジェクト用のソリューションを作り、それをWinとWebのソリューションから
参照するということかな。

ん〜、何かソリューションとかプロジェクトの考え方とか、とらえ方が間違ってるような気がしてきた。。。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-02-14 01:18
僕もWinとWebとロジック部分で3つのプロジェクトを一つのソリューションで開発していますが、テストする時は、テストしたい方の
1・プロジェクトファイルに合わせて右クリック
2・スタートアッププロジェクトに設定
でデバッグしています。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-14 01:39
 同じく、Webアプリ複数(ただし、1つのアプリとして構成)とWinアプリ複数を1つのソリューションで開発しています。
 開発者がそれぞれ違うなら、それぞれが「スタートアッププロジェクト」を別個に設定すればいいだけでは?そういう話ではない?
#スタートアップアプリは個人設定にはいるので、VSSで管理されません
Ten.
ベテラン
会議室デビュー日: 2003/04/03
投稿数: 67
投稿日時: 2004-02-14 03:09
NAL-6295さん、Jittaさん、書き込みありがとうございます。

引用:

 開発者がそれぞれ違うなら、それぞれが「スタートアッププロジェクト」を別個に設定すればいいだけでは?そういう話ではない?
#スタートアップアプリは個人設定にはいるので、VSSで管理されません


なるほど、スタートアッププロジェクトは個人設定にはいるのですね!
なんで、そこに気づかなかったかなー(頭が固くなってきたのかも。。。)

でも、1つのソリューションにすること自体はおかしなことではないようですし、
これでもやもやが晴れました。

みなさん、ありがとうございました。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-02-14 08:47
引用:

Ten.さんの書き込み (2004-02-14 03:09) より:

なんで、そこに気づかなかったかなー(頭が固くなってきたのかも。。。)


 わははは!!スタートアッププロジェクトを変更しても、VSSからチェックアウトされないことに、私もごく最近気が付いたのだ
nodera
大ベテラン
会議室デビュー日: 2003/09/08
投稿数: 200
投稿日時: 2004-02-14 11:39
こんにちは。

個人や少人数開発でソリューションに入っているプロジェクトの数がそれほど多く無いのであれば、スタートアッププロジェクトの変更でもいいと思いますが、プロジェクトが多くなるとちょっと困ったことが。

この構成で[デバッグ]-[開始]をやってしまうと、ソリューションに入っているプロジェクトが全てビルドされてしまいます(構成プロパティでビルド対象になっているものだけですが)。Winやってる人は自分に関係ないWebがビルドされてしまい、その分アプリケーションが実行されるまで待たされてしまいます。その逆も然り。自分に関係ないプロジェクトが増えれば増えるほど、待たされる時間は増えていき、ビルドすることができないソースが入っていた日には・・・(悲

ですのでやはり、[デバッグ]-[新しいインスタンスの開始]をお薦めします。

スキルアップ/キャリアアップ(JOB@IT)