2017-04-04 5 views
0

異なるリソース(画像)を持つ同じアプリケーションを構築するために私のプロジェクトでカスタムプロパティを使用しています。ソリューションによってプリセットされたプロジェクトファイルのカスタムプロパティ

project.jsproj

<ItemGroup> 
    <Content Condition="$(Customization) == ''" Include="images\uwp\*.png" /> 
    <Content Condition="$(Customization) != ''" Include="images\$(Customization)\uwp\*.png" /> 
</ItemGroup> 

これは、MSBuildのを経由して正常に動作します:VisualStudioをその上のソリューションでこのカスタムプロパティを事前に設定する可能性がある場合

msbuild project.jsproj /property:Configuration=Release;Platform=x64;Customization=theme_xy 

私の質問はそこにもビルドに適用されます。例えば

A)Solution1.sln embeddsがSolution2.sln embeddsがカスタマイズプロパティ= "theme_xyとproject.jsprojカスタマイズプロパティ

エンプティB)とproject.jsproj "

ありがとうございました - ありがとう

答えて

0

は、ソリューション名の分化によってこの問題を解決:物事を明確にする

<PropertyGroup> 
    <Customization></Customization> 
</PropertyGroup> 

<PropertyGroup Condition="'$(SolutionName)' == 'Solution1'"> 
    <Customization>theme_xy</Customization> 
</PropertyGroup> 
1

このカスタムプロパティをVisualStudioのソリューションにプリセットする可能性がある場合は、そこにビルドにも適用されます。

答えはイエスですが、条件付き制限あなたはSolution1.slnとSolution2.slnで同じproject.jsprojファイルを使用することができなかったということです。あなたはSolution1.slnでproject.jsprojファイルにPropertyGroupを設定することができます。

<PropertyGroup> 
     <Customization></Customization> 
    </PropertyGroup> 
    <ItemGroup> 
     <Content Condition="$(Customization) == ''" Include="images\uwp\*.png" /> 
     <Content Condition="$(Customization) != ''" Include="images\$(Customization)\uwp\*.png" /> 
    </ItemGroup> 

solution1.slnにproject.jsprojファイルを変更することが同等であること:

<ItemGroup> 
    <Content Include="images\uwp\*.png" /> 
    </ItemGroup> 

対処方法2で。 SLN、あなたはproject.jsprojファイル変更する必要があります。

<PropertyGroup> 
    <Customization>theme_xy</Customization> 
    </PropertyGroup> 

をしかし、あなたは同じを使用したい場合は、 project.jsprojをsolution1.slnとsolution2.slnに追加する場合は、PropertyGroupにConditionを設定する必要があります。この条件は、コマンドラインのようにVSの外部から転送する必要があります。この場合、条件付きカスタムプロパティを持つ同じproject.jsprojを別のソリューションに埋め込むことはできません。

<PropertyGroup Condition="$(Customization) == ''"> 
    <Customization></Customization> 
    </PropertyGroup> 
+0

ありがとう:私は両方のソリューションに同じproject.jsprojを使用したいが。基本的に私の質問は、VSを介してこの外部条件を提供する方法がある場合でしたが、明らかにそれは不可能です。 – kerosene

+1

私はそれがすべきだと思う、我々はVS自体を介してこの外部条件を提供することができませんでした。 –

+0

はソリューション名に基づいてプロパティを設定することで解決しました: ' <カスタマイズ> theme_xy ' – kerosene

関連する問題