1

ファイルからオプションを読み取ってappSettings.config、CSPROJ に条件付きセクションを作成したいと考えています。Visual Studio 2010 の条件付き参照の助けを借りて条件付き参照を行う方法は知っていますが、その中から appSettings ファイルにアクセスする方法がわかりません。

これは可能ですか?もしそうなら、誰かが何らかのガイダンスを提供してくれませんか?

EDIT @paloの答えに続いて、私は今持っています:

<Target Name="BeforeBuild">
        <XmlPeek XmlInputPath="SiteSettings.config" Query="appSettings/add[@key='cProjectNumber']/@value">
            <Output TaskParameter="Result" ItemName="value" />
        </XmlPeek>
        <Message Text="TESTING: @(value)" Importance="high" />
    </Target>

これはうまく機能し、プロジェクト番号、つまりTesting: 012. さて、いくつかのコンパイルインクルードでそれを使用するにはどうすればよいですか? 私が試してみました:

<ItemGroup>
    <Compile Include="Accounts\@(value)\Controls\MyControl.ascx.cs">
        <SubType>ASPXCodeBehind</SubType>
    </Compile>
</ItemGroup>

しかし、次のようなエラーが表示されます。

"Accounts\@(value)\Controls\MyControl.ascx.cs" という式は、このコンテキストでは使用できません。アイテム リストは、アイテム リストが期待される他の文字列と連結できません。複数の項目リストを区切るには、セミコロンを使用します。

4

2 に答える 2

2

私が正しく理解している場合は、appconfig (xml ファイル) の要素の値を読み取り、csproj ファイルでその値を使用する必要があります。XmlPeek を使用してみてください - http://msdn.microsoft.com/en-us/library/ff598684.aspx ; XmlPeek タスクの使用方法

評価の順番に注意してください。グローバル プロパティ/アイテムをオーバーライドすることはできません。しかし、msbuild 4.0 では、BeforeTargets 内または AfterTargets によって項目をオーバーライドできます

于 2013-07-10T21:07:11.590 に答える