ms构建动态资源命名

时间:2015-12-10 09:59:48

标签: c# visual-studio-2012 msbuild csproj

我想在编译时通过特殊命名将一些文件添加到嵌入式资源中。为此,我写了.csproj

<Target Name="BeforeBuild" >
    <ItemGroup>
        <EmbeddedResource Include="..\Bin\$(Configuration)\*.*">
        </EmbeddedResource>
    </ItemGroup>
</Target>

但它始终将<LogicalName>设置为默认值。 我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。这个重命名工作:

<Target Name="BeforeBuild">
    <ItemGroup>
      <Frameworks Include="..\Bin\$(Configuration)\Frameworks\*.*" />
      <Steps Include="..\Bin\$(Configuration)\Steps\*.*" />
    </ItemGroup>
    <ItemGroup>
      <EmbeddedResource Include="@(Frameworks)">
        <LogicalName>Frameworks.%(Filename)%(Extension)</LogicalName>
      </EmbeddedResource>
      <EmbeddedResource Include="@(Steps)">
        <LogicalName>Steps.%(Filename)%(Extension)</LogicalName>
      </EmbeddedResource>
    </ItemGroup>
    <Message Text="EmbeddedResource - @(EmbeddedResource)" />
  </Target>