Project.fallback_output_path doesn't apply common msbuild properties to the found text
baronfel opened this issue · 1 comments
I like to consolidate as much as possible the variation points in my project files on the configuration, so I tend to have a project file that looks like this:
<PropertyGroup>
<AssemblyName>WHATEVER_THE_NAME_IS</AssemblyName>
<RootNamespace>$(AssemblyName)</RootNamespace>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>blah-blah-blah</ProjectGuid>
<OutputType>Library</OutputType>
<OutputPath>bin\$(Configuration)</OutputPath>
...
<DocumentationFile>bin\$(Configuration)\$(AssemblyName).xml</DocumentationFile>
</PropertyGroup>
When Project::output_dll
is called, it correctly locates the fallback_output_path
of bin\$(Configuration)
, but it doesn't apply any existing (or even just a subset of common) MSBuild properties to try and resolve that path. I can see where this might go off the rails, but at the same time I'd like to use well-known properties like Configuration and Platform to make paths and reduce duplication.
Sure; PR for the 'common' properties inside $(...)
and we can have a whitelist that gets interpolated. But remember that MsBuild is rather close to turing complete (or maybe it is; not sure), so it's a fool's errand to support all and every evaluation it's capable of without implementing the engine itself.