6

私のソリューションには多くのプロジェクトがあります。

それぞれの設定をオーバーライドしたいと思います。私はそれらすべてを編集することができました。しかし、それは退屈で、私の後に続く開発者にとってはエラーが発生しやすいものです。

したがって、ビルドが実際に開始される前に、カスタム .proj ファイルを .csproj にマージする方法があることを願っています。

変更したい設定は、出力設定(デバッグ構成用)です。$(SolutionDir)\bin\Debug に設定したいです。

私は希望的観測者ですか?またはこれを行う方法はありますか?

4

2 に答える 2

7

すべてのプロジェクトで共通にするプロパティを設定するカスタム .targets ファイルを作成できます。

カスタム .targets ファイルで、次のプロパティを設定します。

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
    <OutputPath>$(SolutionDir)\bin\Debug</OutputPath>
</PropertyGroup>

このターゲット ファイルを各 .csproj ファイルに含め、以前に設定した OutputPath プロパティを削除する必要があります (そうしないと、.targets ファイルに設定されているプロパティが上書きされます)。

<Import Project="<PathToYourTargetsFile>"/>

これには各 .csproj ファイルの編集が必要ですが、各ファイルでそのプロパティを直接設定するよりも保守が容易です。特に、将来、すべてのプロジェクトに共通の設定がさらに必要になる可能性がある場合はなおさらです。追加されたプロジェクトでは、開発者はその .targets ファイルをインポートすることを覚えておく必要があります。

于 2012-08-21T06:32:37.763 に答える
3

msbuild コマンド ラインから出力パラメーターを設定します。

/p:OutputPath="$(SolutionDir)\bin\Debug"

OutputPath - プロジェクト ディレクトリに相対的な出力ディレクトリへのパス ("bin\Debug" など) を指定します。

もう 1 つのオプションは、csproj ファイル内に構成オーバーライドを配置することです。以下のように。これがあなたがやりたいことかどうかはわかりません。

<Config
Name = “Release”
AllowunsafeBlocks = “false”
BaseAddress = “285212672”
CheckForOverflowUnderflow = “false”
ConfigurationoverrideFile = “debug. web. config”
DefineConstants = “TRACE”
DocumentationFile = “
DebugSymbols = “false”
FileAlignrnent = “4096”
IncrementalBuild = “false”
Optimize = “true”
OutputPath = “bin\”
RegisterForcomlnterop = “false”
RemovelntegerChecks = “false”
TreatWarningsAsErrors = “false”
WarningLevel = “4”
/>
于 2012-08-20T21:42:34.743 に答える