2012-10-08 10 views
10

Typescriptと共にTFS Visual Studioプロジェクトで問題が発生している可能性があります。TypeScriptとTFSに関する問題

ビルド時tscは読み取り専用の.jsファイルを上書きできません。許可が拒否されました。

Error 1 Permission denied 
Error 2 The command ""C:\Program Files (x86)\Microsoft SDKs\TypeScript\0.8.0.0\tsc 
"c:\users\schlicht\documents\visual studio 2012\Projects\TypeScriptHTMLApp1\TypeScriptHTMLApp1\app.ts"" exited with code 1. 

それはなしを明示的に TSCでビルドを使用するファイルをチェックアウトすることは可能ですか?

+1

FYIアップデート3でのVisual Studio 2013の最新バージョンは、この問題を修正しました。私は.jsファイルが.tsファイルの下にネストされたTFSソース管理下にあるプロジェクトを持っています。コンパイルの原因となる.tsファイルを保存すると、.jsファイルが自動的にチェックアウトされて更新されます。 – Quango

答えて

1

これは既知のバグ(または不足している機能)である:

http://typescript.codeplex.com/workitem/108

+0

ありがとう、私はすでに何かを考えていた。 Web Essentials 2012を使用すると、Visual Studioに保存されたときにTypeScriptファイル(.ts)を自動的にコンパイルすることができます。また、プレビュー機能も備えています。 [リンク] http://visualstudiogallery.msdn.microsoft.com/07d54d12-7133-4e15-becb-6f451ea3bea6 – iSchlicht

+0

Web Essentials 2012は同じ問題を抱えています.... –

7

は.jsファイルをチェックインしないでください。このアプローチはTypeScriptプロジェクトで使用し、うまく機能します。生成された.jsをソース管理に持つ必要はありません。 .jsファイルを.exeや.dllのようなプロジェクトの出力と考えてください。

+4

この問題は、.jsファイルがビルド時にプロダクションサイトで生成されません。 –

0

I experienced昨日です。

ianoが述べているように、生成された.jsをTFSに追加しないでください。 BeforeBuildターゲットにtf checkouttf checkinを追加します。

1

回避策:JSファイルをプロジェクトの一部とソース管理に保存するには、次のようにします。

ローカルワークスペースを使用します。これはファイルに読み取り専用フラグを適用しないため、.JSファイルを保存するときに書き込むためにチェックアウトする必要はありません。

私はこの問題を呈していなかったので、私はこれを見つけましたが、私のチームの他の人たちがいました。私は、サーバーワークスペースの代わりにローカルワークスペースを使用していました。

他のチームメンバーはローカルワークスペースに変換されており、もう一度スムーズに航行しています。

0

プロジェクトからの.jsファイルの除外を提案する人には、これは小規模および単一のソリューションソフトウェアでしか機能しないと言わざるを得ない。大規模なソフトウェアアプリケーション、つまりERPでは、通常、モジュールごとに複数のソリューションが存在し、それぞれに.jsファイルがある場合、.jsやその他のソースファイルは、通常、「組み込みリソース」とカスタム仮想パスプロバイダまたは何か。

なので、どのような作品ですか? This solutionあなたを助けてくれるかもしれませんが、試してみることをお勧めします。

しかしとにかく、A.Mが言及しました。これは既知のバグです。そして、私はTypeScriptコンパイラの最適な解決策は、読み取り専用(チェックイン)されている.tsファイルの.jsファイルの書き込みをスキップすることだと思います。

4

今度は ビルドサーバーがTypescriptの実行用に構成されている場合、TSCはJavaScriptファイルを実行して生成します。

JSファイルを削除したくない場合に備えて、別の解決策があります。なぜなら、JSをしばらくは削除し、他の開発者がそれらのファイルをTFSにもう一度チェックすると、同じエラーが発生するからです。(これらは隠しファイルなので、チェックインを慎重に行わないとTFSでチェックインできます)

この場合、事前ビルドイベントを実行すると、すべての読み取りが削除されますそのプロジェクトのJSファイルの属性のみです。

1. プロジェクトをクリックして、プロジェクトプロパティウィンドウ

2.を開きビルドイベントに

enter image description here

]タブを選択しますこれはすべて、保証しますJSファイルは読み取り専用属性を解放し、ファイルへの書き込みにエラーは発生しません。

これが役に立ちます。

出典:http://dailydotnettips.com/2014/05/03/typescript-emit-error-write-to-file-failed-how-to-resolve

+1

私は 'attrib -r/s" $(ProjectDir)* .js.map "を追加しました。 –

関連する問題