3

まず、明らかな何かが欠けている場合はお詫びしますが、どこにも答えが見つからないようです!

私が持っているのは、サポートするクラスやコントローラーなどを含む多数のクラス ライブラリ プロジェクトと、ビューを含む MVC プロジェクトを含むソリューションです。

私が望むのは、この一連のプロジェクトを別の場所 (つまり、c:\build) にビルドし、このビルド場所から VS デバッグを実行できるようにすることです。これは、dll および pdb ファイルが常に更新されてソース管理にチェックインされるのではなく、デフォルトでユーザーの PC 上の別の場所に単純にビルドされるようにするためです。

私が行ったことは、csproj xml ファイルを変更して、次のエントリを含めることです。

<BaseOutputPath>c:\build\$(AssemblyName)\$(Configuration)\</BaseOutputPath>
<OutputPath>$(BaseOutputPath)\bin\</OutputPath>
<BaseIntermediateOutputPath>$(BaseOutputPath)\obj\</BaseIntermediateOutputPath>

これは、クラス ライブラリ プロジェクトと for MVC プロジェクト自体によって作成された dll に対して完全に機能します。VS は関連するフォルダーを作成し、依存するプロジェクト dll をこのフォルダー構造に構築するなど、適切な dll ファイルをそれらに構築します。

ただし、MVC プロジェクトでも発生しているように見えるのは、依存する dll をプロジェクトの \bin フォルダーにビルドしているように見えることです (ただし、そこにはビルドされません)。また、プロジェクトを実行すると、プロジェクトのこの \bin フォルダー内のコードから実行しようとし、MVC プロジェクトの dll が見つからないため、フォールオーバーするようです。

VS が依存 DLL ファイルを \bin フォルダーにビルドするのを止めて、ビルドされた DLL のビルド場所を調べるように指示する方法はありますか?

proj ファイルに関する MSDN Web サイトを調べたところ、さまざまな解決策が見つかりましたが、どれも機能しません。

どんな助けでも大歓迎です。

4

1 に答える 1

2

2 つのビルド プロセスが異なるため、この動作が VSBuild ではなく MSBuild に依存していることを願っています。運が良ければ、これが MSBuild と同じ動作に従っている場合は、MSBuild のデバッグ プロセスに従います。

MSBuild の魔法のような動作と同様に、.CSProjファイル内で任意のimport target=コードを探して、それらのファイルを見つけます。これらをたどると、これについて決定を下している部分にたどり着きます。

VS のデバッガーをビルド プロセスにアタッチできます - http://blogs.msdn.com/b/visualstudio/archive/2010/07/06/debugging-msbuild-script-with-visual-studio.aspx + http:// blogs.msdn.com/b/visualstudio/archive/2010/07/09/debugging-msbuild-script-with-visual-studio-2.aspx

また、ビルドの冗長性を一時的に上げることができますhttp://blogs.msdn.com/b/msbuild/archive/2005/09/29/475157.aspx

于 2012-08-07T12:31:00.343 に答える