【问题标题】:How can you use MSBuild to rename a source file before compilation?如何在编译前使用 MSBuild 重命名源文件?
【发布时间】:2016-05-18 12:46:26
【问题描述】:

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

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

【问题讨论】:

    标签: c# wpf xaml msbuild


    【解决方案1】:

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

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

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

    【讨论】:

    • 这看起来很有希望。我试试看。
    • 这确实对我有用。再次感谢您抽出宝贵时间回复。
    • 抱歉没有时间尝试并举个例子。
    猜你喜欢
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    相关资源
    最近更新 更多