- - PR -
WindowsアプリとWebアプリとで共通なプロジェクトを参照する場合のソリューションの構成は?
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-02-14 11:55
すみません、こっちの質問に回答してませんでした。 そうです、この場合3つのソリューションがあります。ただし1つは共通プロジェクト(Win/Web共に参照するライブラリ部分)だけがはいったソリューションではなく、Ten.さんがやろうとしているようにWin/Web/共通全てのプロジェクトがはいったソリューションです。うちの開発ではこのようなプロジェクトは完全にビルド専用ソリューションになっています。 またWin(Web)用のソリューションは、共通部のソリューションを参照しているのではなく(そういったことは出来ないと思う)、共通部のプロジェクトを[追加]-[既存プロジェクト]で追加を行っています。 この例は概念であり実際の開発では、もうすこし複数のソリューションに分かれています。(Winでも業務グループ単位とか) ただWebはなかなか思うようにソリューションが構成できないのが難点です。VS.NET+VSSで複数のWebプロジェクトを多人数で開発しているとソリューションの構成が崩れることがままあります。 これを直すのがまたコツがいるんですよね。。(^^; | ||||||||||||
|
投稿日時: 2004-02-14 13:08
そうですか?「参照」している、「依存」しているものだけがビルドされていますけど? | ||||||||||||
|
投稿日時: 2004-02-14 16:06
おやぁ?マジっすか。 たとえば1つのソリューションに、互いに関連しない2つのWinFormプロジェクトを追加し、片方をスタートアップアプリケーションに指定して、[デバッグ]-[開始]とした場合、両方ともビルドされてしまいませんか? そして、スタートアップじゃないほうを、わざとコンパイルエラーにするようなコードを書いておくと、[デバッグ]-[開始]では実行できないんですが。 自分の環境だけ...のはず無いと思うんだけど、隣のマシンでも同じだったよな.... WindowsXP Pro + VS.NET2003 | ||||||||||||
|
投稿日時: 2004-02-14 16:47
Winアプリは試していないですが、おそらくビルドしていませんよ。Webアプリで、1つのプロジェクトが「体験版」のコントロールを使っているのですが、ビルド時に“看板”がでます。そのプロジェクトを参照していないプロジェクトをスタートアッププロジェクトにしています。「ソリューションのビルド」をすると看板がでますが、「デバッグ→開始」では看板はでません。 関係ないですが、編集していないプロジェクトまでビルドするのはやめて欲しい。。。「なんで依存関係でビルド日時のチェックしてねぇえんだよぉ!?」と言いたい。・・・あ、ということは、noderaさんのおっしゃるとおりビルドはしている?あれ? | ||||||||||||
|
投稿日時: 2004-02-16 21:31
noderaさん、Jittaさん遅くなりましたが、ご返答ありがとうございます。
なるほど、このようなやり方もあるのですね。 複数のソリューションに分ける場合は、この方が良さそうですね。 1つのソリューションで行う場合の「関係ないプロジェクトまでビルドされる」という問題は、ソリューション構成を切り替えることで対応できないかと思っています。 デフォルトでは「Debug」という構成がありますが、これを「Win Debug」と「Web Debug」という感じで用途ごとに作り、それぞれ必要なプロジェクトだけビルドするように構成すればうまくいかないかと考えております。 ソリューション構成の設定やどの構成を選択しているかといった情報が、共通なのか個人ごとなのかによっても変わると思いますので、調べてみます。(今は環境がないのでできませんが) | ||||||||||||
|
投稿日時: 2004-02-17 11:16
上記の方法を試してみたところ、意図したとおりになりました。 ソリューション構成の設定は、以下の点よりユーザ間で共通だと判断しました。 ・設定を変更したときにソリューションファイル(.sln)が更新される ・ソリューションファイル(.sln)の中身を見るとソリューション構成の設定内容と思われる情報がある どのソリューション構成を選択しているかは、以下の点よりユーザ固有だと判断しました。 ・ソリューション構成の選択だけを変更した場合にVSSの管理対象外のファイルしか更新されていない(.suo、.user、.webinfo) 実際にVSSに登録してみるのが一番かと思いますが、試せる環境がありませんので、中途半端ではありますが、ひとまずはこれでよしとします。 ちなみに、ソリューション構成でビルドの対象となっている場合は、スタートアッププロジェクトと依存関係のないプロジェクトもビルドされます。(わざとコンパイルエラーとなるコードを挿入して試しました) ですから、Jittaさんの
という件は少し違う話なのかな?と思いました(「看板」のでる仕組みとかが分からないので断定はできませんが) 試したプロジェクトの構成は最初の投稿で例に挙げた以下のようなものです。
| ||||||||||||
|
投稿日時: 2004-02-17 11:58
GrapeCityのSPREAD for .NETの体験版なのですが、ビルド時に「体験版」というスプラッシュ画面が出るのです。ビルドしたらでると思っていたのですが、違うのかな? PJ1からPJ2、PJ3を参照していて、PJ3でその看板がでます。大元はPJ1なのでPJ1をスタートPJにしていたのですが、看板がうっとうしいのでPJ2をスタートPJにしました。すると、看板はでなくなりました。ところが、PJ1を修正する必要があり、修正した後に「開始F5」すると・・・PJ1はビルドされていないので修正前の状態で起動しました(--;。これから、「参照していないプロジェクトはビルドされない」と判断しているのですが、違うのかなぁ??? |