如何在编译之前使用MSBuild重命名源文件?

时间:2016-05-18 12:46:27

标签: c# wpf xaml msbuild

我有一个问题,我想在编译之前重命名/移动/复制源XAML文件。我可以看到有一个Move和一个复制任务作为MSBuild的一部分,你可以放入.csproj文件,它将执行此操作。不幸的是,我只能使用编译后的文件。这些任务中的任何一个都应该适用于源文件本身吗?

如果它具有任何价值,我会详细说明我正在尝试做什么,以防有人有完全不同的解决方案。基本上,我们的WPF应用程序需要具有品牌。我们在不同的XAML文件中有不同的品牌(不同的图标和属性等)。这些文件的名称与BrandA.xaml,BrandB.xaml等类似。我目前正在尝试将其中一个品牌文件编译成简单的Brand.xaml,然后应用程序的其余部分将加载。我已经能够使用条件只使用MSBuild复制一个文件,但我无法正确命名。

1 个答案:

答案 0 :(得分:1)

不要将不同品牌包括为Page,而是将您的自定义项目类型包括在内,例如Brand(确保它仍然是项目的一部分并显示在Visual Studio中):

<Brand Include="BrandA.xaml">
   <Generator>MSBuild:Compile</Generator>
   <SubType>Designer</SubType>
</Brand>

然后,您可以使用BeforeBuild目标将相关文件复制到Brand.xaml,并将其包含在Page项目组中。您应该能够同时使用SourceFilesDestinationFiles将文件重命名为副本的一部分。