2012-11-21 137 views
2

如何強制Visual Studio 2012始終使用由TypeScript創建的最新版本的生成J​​avaScript文件?Visual Studio 2012未採用ASP.NET MVC4項目的最新編譯TypeScript

我使用下面的定義在我的項目文件:

<Target Name="BeforeBuild"> 
    <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; -out scripts\app.js scripts\app.ts -target ES5 @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" IgnoreExitCode="true" /> 
    </Target> 

當我清理和重建項目,app.js相應的更新。

但是,出於某種奇怪的原因,當我嘗試使用Internet Explorer調試解決方案時,Visual Studio正在使用過時版本的app.js,這會使我的斷點失效。

這是怎麼回事?

+0

你如何引用頁面上的JavaScript文件? – Fenton

+0

是的。腳本正在正確加載,儘管是過時的或緩存的副本。 –

回答

4

這裏最可能出現的問題並不是TypeScript或JavaScript - Internet Explorer只是緩存JavaScript文件並使用過時的版本。

<script src="myscript.js?1"></script> 

如果你要替換緩存的版本,每次遞增1,它:

如果您要引用一個單獨的腳本,您可以通過更改URI的任意部分緩存,摔壞了將導致新腳本被加載。您可以通過傾銷時間戳來代替1自動執行此操作。

如果您正在使用捆綁,我建議在MVC4中使用捆綁器,捆綁器會附加一個腳本的散列,它也會執行相同的操作。

+0

就是這樣,謝謝。 –

+0

我遇到了這個確切的問題;我正在使用捆綁,但我仍然沒有得到更新的JavaScript文件。當我將JavaScript複製到頁面上的腳本標記中時,它可以正常工作。有沒有辦法手動消除IE(現在的Chrome)緩存? –

相關問題