2013-02-15 63 views
1

从Adobe的documentation使用mxmlc(Flex编译器)会忽略XML CONFIGS“定义”

To set the value of these constants in the flex-config.xml file, rather than on the command line, you write this as the following example shows:

<compiler> 
    <define append="true"> 
     <name>CONFIG::debugging</name> 
     <value>true</value> 
    </define> 
    <define append="true"> 
     <name>CONFIG::release</name> 
     <value>false</value> 
    </define> 
</compiler> 

的问题是,编译器实际上并不考虑这些,给我像“错误编译错误:访问未定义的属性调试。“因为我在我的ActionScript代码中有这个。

如果我通过参数(“-define + = CONFIG :: debugging,true”)来定义它们,一切正常。

我想也许我的配置根本没有使用,所以我格式不正确 - mxmlc指出。所以config实际上被加载到编译器中。

任何提示?谢谢。

回答

0

所以这是XML问题 - 因为我实际上有字符串,而不是布尔值,在配置中 - 你不应该忘记写正确的XML(奇怪的是编译器没有说我回来了)。

<value>&quot;MyStringValue&quot;</value> 

或更容易:

<value>'MyStringValue'</value> 

和双引号( '" MyStringValue "')是当你使用的参数。

+0

是的,我知道引用字符串的问题(在我的经验中有相同的),但你的例子是布尔值,所以我不认为它是一个潜在的原因) – fsbmain 2013-02-20 11:20:05

+0

并给我自己的一个说明:张贴实际的东西,做不过分简化=) – 2013-02-20 12:04:12

2

我使用相同的方法通过加载自定义配置传递DEFINE参数,所有工作正常。我没有看到你提供的配置部分的错误。

下面是配置和使用mxmlc则params的my variant

 
-load-config tools/config-local.xml -dump-config=local-dumped-config.xml. 

还要检查转储配置以纳入确信定义。

+0

在倾倒配置没有限定,但这些线(确切地,从那里复制的): $ {flexlib}/$ {配置名称} -config.xml /用户/ fljot /Development/Projects/BirdsWheel/build/metsaylem-config.xml 2013-02-15 08:06:40

+0

我只能建议你在演示项目上测试,一切都应该可以工作。对于你的问题应该有一个简单的解决方案,但是很难从远程找到它。 – fsbmain 2013-02-15 08:41:44

+0

你可以发布你的转储配置的相应部分吗? – 2013-02-15 08:52:28