2012-12-04 36 views
0

我想在使用release vs debug的時候排除一些代碼。基本上我有一個測試用的內部管理部分,我不永遠使它進入App Store意外:)WinJS有#DEBUG或#RELEASE指令嗎?

理想情況下,我只能夠做這樣的事情:

#IF DEBUG 
    <div id="appBar" data-win-control="WinJS.UI.AppBar"> 
     <button data-win-control="WinJS.UI.AppBarCommand" data-win-options="{id:'cmdAdmin', label:'Admin', section:'global' }"> 
     </button> 
    </div> 
#ENDIF 

回答

2

here。有一個nuget包here來啓用它,而無需直接將代碼添加到您的項目。之後,你有,那麼你只是做:

<script src="/js/debugSymbols.js"></script> 

if (Debug.isDebugBuild) { 

以下是完整的代碼,您如果使用NuGet包不需要:

(function() {  
    "use strict"; 
    if (Debug.hasOwnProperty("isDebugBuild")) { 
    return; 
    } 
    var thisPackage = Windows.ApplicationModel.Package.current, 
      installedPath = thisPackage.installedLocation.path; 
    if (typeof installedPath === "string") { 

     if (installedPath.match(/\\debug\\appx$/i)) { 

      Object.defineProperty(Debug, "isDebugBuild", { 
       get: function() { 
       return true; 
       } 
      }); 
     } 
    } 
})(); 
+1

如果你創建一個包調試配置和另一臺電腦(用於測試目的)上安裝要知道,這是不行的。 –

1

我一直在研究這個問題,我發現以下內容(基於VS解決方案中的配置管理器)

而且我正在考慮使用的MSBuild任務(或MSBuild的內聯任務),以取代基於當前配置(例如調試,發佈)中的特定文件的文本。這應該發生在beforeBuild事件中。這也可能用於根據部署設置特定的值。

乾杯, 香草

相關問題