2011-01-13 8 views
5

Debug x86でビルドするように設定されたVisual Studio 2010ソリューションがあります。 Visual Studioは出力パスを\ bin \ x86 \ Debugに設定します。これは十分に論理的です。Visual StudioでWCFプロジェクトをビルドするときの出力ディレクトリ

このソリューションには約50件のプロジェクトが含まれています。スタートアッププロジェクトはWCFプロジェクトです。

ビルドを実行すると、すべての出力dllが\ bin \ x86 \ Debugに移動すると予想されます。これは、プロジェクト設定で設定されているとおりです。しかし、奇妙なことに、bin \ x86 \ Debug と\ binのにdllが作成されているのが分かります。なぜ出力パスがそのディレクトリに設定されていない場合、Visual Studioは\ binに任意のdllを入れますか?すべてのdllは\ bin \ x86 \ Debugにあり、スタートアッププロジェクトを除くすべてのdllはです。\ binに入ります。なぜそれがそれをするだろうか?

Visual Studioからサービスを実行してから、Webブラウザでサービスにアクセスしようとすると、もう1つ問題が発生します.WCFを使用していない他のソリューションは、 http://localhost:1240/MyService.svcに行くと、起動プロジェクトdllが/ binにないために動作しません。したがって、\ bin \ x86 \ Debugから\ binにこの1つのdllを手動でコピーして、すべてのdllが見つかってサービスが正常に実行されるようにする必要があります。 (コピーを行うカスタムポストビルドステップを追加することもできますが、より良い方法があると思います)

WCFプロジェクトで作業している人には、出力パスを残しますか\ bin \ x86 \ Debugにありますか? (おそらく、\ binの代わりに\ bin \ x86 \ Debugにバイナリがあることを知るために、web.configファイルや.svcファイルなどのサービスを設定する方法があります)か、出力パスを次のように変更しますか? \ binを使用すると、Visual Studioから直接サービスを実行できますか?

答えて

7

WCFホスティングプロジェクトとgotoタブビルドのプロパティページを開くと、このタグの出力セクションに出力バイナリの場所を含むテキストボックスが表示されます。

WCFプロジェクトの場合、バイナリはビルドタイプに関係なくbinディレクトリに移動する必要があります(suc、Debug、Release)。この値が正しく設定されていることを確認してください。

各ビルドタイプ\構成ごとに値を設定する必要があります。

+0

はい、そのテキストボックスは、私の投稿で話している "出力パス"です。だから、あなたはこれをビンに、ストーリーの終わりに設定すると言っている。あなたがこの出力パスを変更すると、ほとんどのファイルはまだbinにとどまるのですが、奇妙に思えますね。 – Justin

+1

WCF以外のプロジェクトのデフォルト出力パスがbin \\ [BuildConfiguration]フォルダを指しています。 WCFサービスはdllがbinディレクトリに存在し、サブディレクトリに存在しないようにするため、Visual Studioから作成されたWCFプロジェクトのデフォルトのプロジェクト設定はbinフォルダです。 – Chandermani

+0

このビットは、バイナリがソリューション構成マネージャの設定に基づいてbin \ x86 \ debugに入ったMVC3のものをやっています。うまくいけば、次の人の周りを揺らすのに役立ちます....ちょうどbin \ – Snowy

-1

異なる理由で異なるフォルダの異なるビルド構成を出力する必要がある場合は、最初に行ったように指定し、指定した出力フォルダからビンにコピーするポストビルドイベントコマンドラインを使用できます。 Like:

- untested code - 
    COPY/Y "$(OutDir)\*.*" "$(SolutionDir)$(ProjectName)\bin\" 
    - untested code - 
+1

投稿する前にテストする必要がありますか? – ForceMagic

関連する問題