应用程序名称的条件编译

时间:2013-06-19 08:13:07

标签: c# windows-phone-8 conditional-compilation

我有一个Windows手机应用程序和2个不同的配置,我想要的是在一个配置中为应用程序设置一个不同的显示名称,有没有任何自动化的方法来做到这一点?

我尝试在AssemblyInfo.cs中修改AssemblyTitle属性但是没有做任何事情

1 个答案:

答案 0 :(得分:1)

通过创建一个作为Pre-Build事件触发的小程序来解决,该事件读取Manifest并相应地将其更改为传递给他的Config名称

作为参考,任何人都应该有这个问题,这里是代码。 此实现采用两个参数par1:config par2的名称:应用程序的WMAppManifest的路径

    static void Main(string[] args)
    {
        XmlDocument document = GetDocument(args[1]);
        SubstituteName(document, args[0]);
        SaveDocument(document, args[1]);
    }

    private static void SaveDocument(XmlDocument document, string path)
    {
        document.Save(path);
    }

    private static void SubstituteName(XmlDocument document, string ConfigName)
    {
        string name="appname "+ConfigName;
        if (ConfigName.Equals("Config1"))
            name = "appname 1";
        if (ConfigName.Equals("Config2"))
            name = "appname 2";

        XmlNode node = document.SelectSingleNode("//App");
        node.Attributes["Title"].Value = name;
    }

    private static XmlDocument GetDocument(string path)
    {
        XmlDocument doc = new XmlDocument();
        doc.Load(path);
        return doc;
    }

在app项目中使用: 在预构建事件中

"$(SolutionDir)AppNameChanger.exe" $(ConfigurationName) "$(SolutionDir)WP8Project\Properties\WMAppManifest.xml"