title: MSBuild reexpand property
body: <p>I use some custom props file like this (my_super_props.props)</p>
  <pre><code>&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
  &lt;Project ToolsVersion=&quot;4.0&quot; xmlns=&quot;http://schemas.microsoft.com/developer/msbuild/2003&quot;&gt;
    &lt;ImportGroup Label=&quot;PropertySheets&quot; /&gt;
    &lt;PropertyGroup Label=&quot;UserMacros&quot; /&gt;
    &lt;PropertyGroup&gt;
      &lt;TargetOsName&gt;linux&lt;/TargetOsName&gt;
      &lt;RemoteGeneratedFilesDir&gt;$(RemoteIntDir)generated_files/&lt;/RemoteGeneratedFilesDir&gt;
    &lt;/PropertyGroup&gt;
    &lt;ItemGroup /&gt;
  &lt;/Project&gt;
  </code></pre>
  <p>VS generates vcxproj file for me like this (piece)</p>
  <pre><code>.....
    &lt;Import Project=&quot;$(VCTargetsPath)\Microsoft.Cpp.props&quot; /&gt;
    &lt;ImportGroup Label=&quot;Shared&quot; /&gt;
    &lt;ImportGroup Label=&quot;PropertySheets&quot; Condition=&quot;'$(Configuration)|$(Platform)'=='debug|x86'&quot;&gt;
      &lt;Import Project=&quot;my_super_props.props&quot; /&gt;
    &lt;/ImportGroup&gt;
    &lt;PropertyGroup Label=&quot;UserMacros&quot; /&gt;
    &lt;PropertyGroup Condition=&quot;'$(Configuration)|$(Platform)'=='debug|x86'&quot;&gt;
      &lt;RemoteIntDir&gt;$(RemoteProjectDir)/obj/$(PlatformTarget)/$(TargetOsName)/$(Configuration)/&lt;/RemoteIntDir&gt;
    &lt;/PropertyGroup&gt;
    .....
  </code></pre>
  <p>Inside Microsoft.Cpp.props - $(RemoteIntDir) already defined like this</p>
  <pre><code>&lt;RemoteIntDir Condition=&quot;'$(RemoteIntDir)' == ''&quot;&gt;$(RemoteProjectDir)/obj/$(Platform)/$(Configuration)/&lt;/RemoteIntDir&gt;
  </code></pre>
  <p>So Inside my Targets i'ev got wrong value of <strong>$(RemoteGeneratedFilesDir)</strong>
  for exmaple<br />
  <strong>my_proj/obj/x86/debug/generated_files</strong>
  instead of
  <strong>my_proj/obj/x86/linux/debug/generated_files</strong></p>
  <p>because properties expands at declaration time,
  but i can't declare <strong>$(RemoteIntDir)</strong> earlier, cos it depends of <strong>$(TargetOsName)</strong></p>
  <p>So I must somehow reexpand <strong>$(RemoteGeneratedFilesDir)</strong> before targets start - but i don't know how ??</p>
  <p>PS
  <strong>$(RemoteIntDir)</strong> - filled with Visual Studio project configuraion UI Dialog, so i even can't change order of properties declaration/props imports and etc</p>