在C++和C#應用程序中,可以定義條件編譯符號,如DEBUG,TRACE或RELEASE,並在程序代碼中使用這些符號來啓用/禁用使用#if生成代碼。在Windows 8 Metro Javascript應用程序中構建特定的條件符號?
我需要在Windows 8 Metro Javascript應用程序中做類似的事情:有不同的構建(調試/發佈)行爲稍有不同。不知怎的,這是支持的嗎?
在C++和C#應用程序中,可以定義條件編譯符號,如DEBUG,TRACE或RELEASE,並在程序代碼中使用這些符號來啓用/禁用使用#if生成代碼。在Windows 8 Metro Javascript應用程序中構建特定的條件符號?
我需要在Windows 8 Metro Javascript應用程序中做類似的事情:有不同的構建(調試/發佈)行爲稍有不同。不知怎的,這是支持的嗎?
在Windows 8 Developer Preview中,Visual Studio for Metro Style JavaScript應用程序沒有JavaScriot的預處理,也沒有編譯步驟。但是,您可以通過MSBuild插入您自己的預處理器(或重新使用C預處理器)。您可以編輯.wwaproj文件並添加調用預處理器的目標。
<Target Name="BeforeBuild">
</Target>
在Visual Studio中有一些很好的文章*用於縮小JavaScript的範圍,這與您的需求非常相似。 * http://amusedia.blogspot.com/2010/11/minimize-javascript-and-css-with.html
我找到了一種方法來確定構建配置名稱。這可能不是最穩定的方法,但至少可以在開發人員預覽版中使用。看起來字符串
Windows.ApplicationModel.Package.current.installedLocation.folderRelativeId
包含構建配置名稱作爲子字符串(例如「.Debug。」)。然後可以在運行時使用這些信息根據構建配置名稱做不同的事情。
有至少兩個問題與方法浮現在腦海: 1)\t的檢查是在運行時是從的#define非常不同,其在 2)\t它使用API的方式構建的時間內完成製作對此不打算。事實上,這種做法是在消費者預覽構建已經突破其中的值看起來類似: Windows.ApplicationModel.Package.current.installedLocation.folderRelativeId \t「68970E9DFD4702D9 \ AppX中」 \t 你應該澄清你的情況,這就是爲什麼你需要在這轉動? – Andy
您是正確的,它在運行時執行,並且我懷疑它在CP上不起作用。正如我的原始問題所述,我需要一種方法來確定構建配置。無論是運行時間還是構建時間,都沒有區別。 – Kyberias