<p dir="auto">Steps to reproduce:</p>
<ol dir="auto">
<li>Create new empty ASP.NET project in Visual Studio</li>
<li>Add TypeScript file to project</li>
<li>Accept prompt to add TypeScript functionality to project</li>
<li>From command-line, build the solution:</li>
</ol>
<p dir="auto"><code class="notranslate">msbuild /p:DeployOnBuild=true /p:EnablePackageProcessLoggingAndAssert=true</code></p>
<p dir="auto">The following error is logged:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="(PipelineCollectFilesPhase target) -&gt; 
  C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(1289,5): error : The following two items have duplicate item metadata %(DestinationRelativePath). The two items data are &lt;Item Name=&quot;MyScript.js&quot;&gt;&lt;DestinationRelativePath&gt;MyScript.js&lt;/DestinationRelativePath&gt;&lt;Exclude&gt;False&lt;/Exclude&gt;&lt;FromTarget&gt;Unknown&lt;/FromTarget&gt;&lt;Category&gt;Run&lt;/Category&gt;&lt;ProjectFileType&gt;Default&lt;/ProjectFileType&gt;&lt;OriginalItemSpec&gt;MyScript.js&lt;/OriginalItemSpec&gt;&lt;TargetPath&gt;MyScript.js&lt;/TargetPath&gt;&lt;FullPath&gt;C:\dev\Sandbox\WebApplication8\WebApplication8\MyScript.js&lt;/FullPath&gt;&lt;RootDir&gt;C:\&lt;/RootDir&gt;&lt;Filename&gt;MyScript&lt;/Filename&gt;&lt;Extension&gt;.js&lt;/Extension&gt;&lt;RelativeDir&gt;&lt;/RelativeDir&gt;&lt;Directory&gt;dev\Sandbox\WebApplication8\WebApplication8\&lt;/Directory&gt;&lt;RecursiveDir&gt;&lt;/RecursiveDir&gt;&lt;Identity&gt;MyScript.js&lt;/Identity&gt;&lt;ModifiedTime&gt;2015-06-25 19:50:36.0037913&lt;/ModifiedTime&gt;&lt;CreatedTime&gt;2015-06-25 19:50:35.7134134&lt;/CreatedTime&gt;&lt;AccessedTime&gt;2015-06-25 19:50:35.7134134&lt;/AccessedTime&gt;&lt;DefiningProjectFullPath&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\TypeScript\Microsoft.TypeScript.targets&lt;/DefiningProjectFullPath&gt;&lt;DefiningProjectDirectory&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\TypeScript\&lt;/DefiningProjectDirectory&gt;&lt;DefiningProjectName&gt;Microsoft.TypeScript&lt;/DefiningProjectName&gt;&lt;DefiningProjectExtension&gt;.targets&lt;/DefiningProjectExtension&gt;&lt;/Item&gt; and &lt;Item Name=&quot;MyScript.js&quot;&gt;&lt;DestinationRelativePath&gt;MyScript.js&lt;/DestinationRelativePath&gt;&lt;Exclude&gt;False&lt;/Exclude&gt;&lt;FromTarget&gt;CollectFilesFromContent&lt;/FromTarget&gt;&lt;Category&gt;Run&lt;/Category&gt;&lt;ProjectFileType&gt;Default&lt;/ProjectFileType&gt;&lt;FullPath&gt;C:\dev\Sandbox\WebApplication8\WebApplication8\MyScript.js&lt;/FullPath&gt;&lt;RootDir&gt;C:\&lt;/RootDir&gt;&lt;Filename&gt;MyScript&lt;/Filename&gt;&lt;Extension&gt;.js&lt;/Extension&gt;&lt;RelativeDir&gt;&lt;/RelativeDir&gt;&lt;Directory&gt;dev\Sandbox\WebApplication8\WebApplication8\&lt;/Directory&gt;&lt;RecursiveDir&gt;&lt;/RecursiveDir&gt;&lt;Identity&gt;MyScript.js&lt;/Identity&gt;&lt;ModifiedTime&gt;2015-06-25 19:50:36.0037913&lt;/ModifiedTime&gt;&lt;CreatedTime&gt;2015-06-25 19:50:35.7134134&lt;/CreatedTime&gt;&lt;AccessedTime&gt;2015-06-25 19:50:35.7134134&lt;/AccessedTime&gt;&lt;DefiningProjectFullPath&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\CollectFiles\Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets&lt;/DefiningProjectFullPath&gt;&lt;DefiningProjectDirectory&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\CollectFiles\&lt;/DefiningProjectDirectory&gt;&lt;DefiningProjectName&gt;Microsoft.Web.Publishing.OnlyFilesToRunTheApp&lt;/DefiningProjectName&gt;&lt;DefiningProjectExtension&gt;.targets&lt;/DefiningProjectExtension&gt;&lt;/Item&gt;. [C:\dev\Sandbox\WebApplication8\WebApplication8\WebApplication8.csproj]
  C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(1289,5): error : The following two items have duplicate item metadata %(DestinationRelativePath). The two items data are &lt;Item Name=&quot;MyScript.js.map&quot;&gt;&lt;DestinationRelativePath&gt;MyScript.js.map&lt;/DestinationRelativePath&gt;&lt;Exclude&gt;False&lt;/Exclude&gt;&lt;FromTarget&gt;Unknown&lt;/FromTarget&gt;&lt;Category&gt;Run&lt;/Category&gt;&lt;ProjectFileType&gt;Default&lt;/ProjectFileType&gt;&lt;OriginalItemSpec&gt;MyScript.js.map&lt;/OriginalItemSpec&gt;&lt;TargetPath&gt;MyScript.js.map&lt;/TargetPath&gt;&lt;FullPath&gt;C:\dev\Sandbox\WebApplication8\WebApplication8\MyScript.js.map&lt;/FullPath&gt;&lt;RootDir&gt;C:\&lt;/RootDir&gt;&lt;Filename&gt;MyScript.js&lt;/Filename&gt;&lt;Extension&gt;.map&lt;/Extension&gt;&lt;RelativeDir&gt;&lt;/RelativeDir&gt;&lt;Directory&gt;dev\Sandbox\WebApplication8\WebApplication8\&lt;/Directory&gt;&lt;RecursiveDir&gt;&lt;/RecursiveDir&gt;&lt;Identity&gt;MyScript.js.map&lt;/Identity&gt;&lt;ModifiedTime&gt;2015-06-25 19:50:35.7124176&lt;/ModifiedTime&gt;&lt;CreatedTime&gt;2015-06-25 19:50:35.7124176&lt;/CreatedTime&gt;&lt;AccessedTime&gt;2015-06-25 19:50:35.7124176&lt;/AccessedTime&gt;&lt;DefiningProjectFullPath&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\TypeScript\Microsoft.TypeScript.targets&lt;/DefiningProjectFullPath&gt;&lt;DefiningProjectDirectory&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\TypeScript\&lt;/DefiningProjectDirectory&gt;&lt;DefiningProjectName&gt;Microsoft.TypeScript&lt;/DefiningProjectName&gt;&lt;DefiningProjectExtension&gt;.targets&lt;/DefiningProjectExtension&gt;&lt;/Item&gt; and &lt;Item Name=&quot;MyScript.js.map&quot;&gt;&lt;DestinationRelativePath&gt;MyScript.js.map&lt;/DestinationRelativePath&gt;&lt;Exclude&gt;False&lt;/Exclude&gt;&lt;FromTarget&gt;CollectFilesFromContent&lt;/FromTarget&gt;&lt;Category&gt;Run&lt;/Category&gt;&lt;ProjectFileType&gt;Default&lt;/ProjectFileType&gt;&lt;FullPath&gt;C:\dev\Sandbox\WebApplication8\WebApplication8\MyScript.js.map&lt;/FullPath&gt;&lt;RootDir&gt;C:\&lt;/RootDir&gt;&lt;Filename&gt;MyScript.js&lt;/Filename&gt;&lt;Extension&gt;.map&lt;/Extension&gt;&lt;RelativeDir&gt;&lt;/RelativeDir&gt;&lt;Directory&gt;dev\Sandbox\WebApplication8\WebApplication8\&lt;/Directory&gt;&lt;RecursiveDir&gt;&lt;/RecursiveDir&gt;&lt;Identity&gt;MyScript.js.map&lt;/Identity&gt;&lt;ModifiedTime&gt;2015-06-25 19:50:35.7124176&lt;/ModifiedTime&gt;&lt;CreatedTime&gt;2015-06-25 19:50:35.7124176&lt;/CreatedTime&gt;&lt;AccessedTime&gt;2015-06-25 19:50:35.7124176&lt;/AccessedTime&gt;&lt;DefiningProjectFullPath&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\CollectFiles\Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets&lt;/DefiningProjectFullPath&gt;&lt;DefiningProjectDirectory&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\CollectFiles\&lt;/DefiningProjectDirectory&gt;&lt;DefiningProjectName&gt;Microsoft.Web.Publishing.OnlyFilesToRunTheApp&lt;/DefiningProjectName&gt;&lt;DefiningProjectExtension&gt;.targets&lt;/DefiningProjectExtension&gt;&lt;/Item&gt;. [C:\dev\Sandbox\WebApplication8\WebApplication8\WebApplication8.csproj]"><pre class="notranslate"><code class="notranslate">(PipelineCollectFilesPhase target) -&gt; 
  C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(1289,5): error : The following two items have duplicate item metadata %(DestinationRelativePath). The two items data are &lt;Item Name="MyScript.js"&gt;&lt;DestinationRelativePath&gt;MyScript.js&lt;/DestinationRelativePath&gt;&lt;Exclude&gt;False&lt;/Exclude&gt;&lt;FromTarget&gt;Unknown&lt;/FromTarget&gt;&lt;Category&gt;Run&lt;/Category&gt;&lt;ProjectFileType&gt;Default&lt;/ProjectFileType&gt;&lt;OriginalItemSpec&gt;MyScript.js&lt;/OriginalItemSpec&gt;&lt;TargetPath&gt;MyScript.js&lt;/TargetPath&gt;&lt;FullPath&gt;C:\dev\Sandbox\WebApplication8\WebApplication8\MyScript.js&lt;/FullPath&gt;&lt;RootDir&gt;C:\&lt;/RootDir&gt;&lt;Filename&gt;MyScript&lt;/Filename&gt;&lt;Extension&gt;.js&lt;/Extension&gt;&lt;RelativeDir&gt;&lt;/RelativeDir&gt;&lt;Directory&gt;dev\Sandbox\WebApplication8\WebApplication8\&lt;/Directory&gt;&lt;RecursiveDir&gt;&lt;/RecursiveDir&gt;&lt;Identity&gt;MyScript.js&lt;/Identity&gt;&lt;ModifiedTime&gt;2015-06-25 19:50:36.0037913&lt;/ModifiedTime&gt;&lt;CreatedTime&gt;2015-06-25 19:50:35.7134134&lt;/CreatedTime&gt;&lt;AccessedTime&gt;2015-06-25 19:50:35.7134134&lt;/AccessedTime&gt;&lt;DefiningProjectFullPath&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\TypeScript\Microsoft.TypeScript.targets&lt;/DefiningProjectFullPath&gt;&lt;DefiningProjectDirectory&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\TypeScript\&lt;/DefiningProjectDirectory&gt;&lt;DefiningProjectName&gt;Microsoft.TypeScript&lt;/DefiningProjectName&gt;&lt;DefiningProjectExtension&gt;.targets&lt;/DefiningProjectExtension&gt;&lt;/Item&gt; and &lt;Item Name="MyScript.js"&gt;&lt;DestinationRelativePath&gt;MyScript.js&lt;/DestinationRelativePath&gt;&lt;Exclude&gt;False&lt;/Exclude&gt;&lt;FromTarget&gt;CollectFilesFromContent&lt;/FromTarget&gt;&lt;Category&gt;Run&lt;/Category&gt;&lt;ProjectFileType&gt;Default&lt;/ProjectFileType&gt;&lt;FullPath&gt;C:\dev\Sandbox\WebApplication8\WebApplication8\MyScript.js&lt;/FullPath&gt;&lt;RootDir&gt;C:\&lt;/RootDir&gt;&lt;Filename&gt;MyScript&lt;/Filename&gt;&lt;Extension&gt;.js&lt;/Extension&gt;&lt;RelativeDir&gt;&lt;/RelativeDir&gt;&lt;Directory&gt;dev\Sandbox\WebApplication8\WebApplication8\&lt;/Directory&gt;&lt;RecursiveDir&gt;&lt;/RecursiveDir&gt;&lt;Identity&gt;MyScript.js&lt;/Identity&gt;&lt;ModifiedTime&gt;2015-06-25 19:50:36.0037913&lt;/ModifiedTime&gt;&lt;CreatedTime&gt;2015-06-25 19:50:35.7134134&lt;/CreatedTime&gt;&lt;AccessedTime&gt;2015-06-25 19:50:35.7134134&lt;/AccessedTime&gt;&lt;DefiningProjectFullPath&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\CollectFiles\Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets&lt;/DefiningProjectFullPath&gt;&lt;DefiningProjectDirectory&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\CollectFiles\&lt;/DefiningProjectDirectory&gt;&lt;DefiningProjectName&gt;Microsoft.Web.Publishing.OnlyFilesToRunTheApp&lt;/DefiningProjectName&gt;&lt;DefiningProjectExtension&gt;.targets&lt;/DefiningProjectExtension&gt;&lt;/Item&gt;. [C:\dev\Sandbox\WebApplication8\WebApplication8\WebApplication8.csproj]
  C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(1289,5): error : The following two items have duplicate item metadata %(DestinationRelativePath). The two items data are &lt;Item Name="MyScript.js.map"&gt;&lt;DestinationRelativePath&gt;MyScript.js.map&lt;/DestinationRelativePath&gt;&lt;Exclude&gt;False&lt;/Exclude&gt;&lt;FromTarget&gt;Unknown&lt;/FromTarget&gt;&lt;Category&gt;Run&lt;/Category&gt;&lt;ProjectFileType&gt;Default&lt;/ProjectFileType&gt;&lt;OriginalItemSpec&gt;MyScript.js.map&lt;/OriginalItemSpec&gt;&lt;TargetPath&gt;MyScript.js.map&lt;/TargetPath&gt;&lt;FullPath&gt;C:\dev\Sandbox\WebApplication8\WebApplication8\MyScript.js.map&lt;/FullPath&gt;&lt;RootDir&gt;C:\&lt;/RootDir&gt;&lt;Filename&gt;MyScript.js&lt;/Filename&gt;&lt;Extension&gt;.map&lt;/Extension&gt;&lt;RelativeDir&gt;&lt;/RelativeDir&gt;&lt;Directory&gt;dev\Sandbox\WebApplication8\WebApplication8\&lt;/Directory&gt;&lt;RecursiveDir&gt;&lt;/RecursiveDir&gt;&lt;Identity&gt;MyScript.js.map&lt;/Identity&gt;&lt;ModifiedTime&gt;2015-06-25 19:50:35.7124176&lt;/ModifiedTime&gt;&lt;CreatedTime&gt;2015-06-25 19:50:35.7124176&lt;/CreatedTime&gt;&lt;AccessedTime&gt;2015-06-25 19:50:35.7124176&lt;/AccessedTime&gt;&lt;DefiningProjectFullPath&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\TypeScript\Microsoft.TypeScript.targets&lt;/DefiningProjectFullPath&gt;&lt;DefiningProjectDirectory&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\TypeScript\&lt;/DefiningProjectDirectory&gt;&lt;DefiningProjectName&gt;Microsoft.TypeScript&lt;/DefiningProjectName&gt;&lt;DefiningProjectExtension&gt;.targets&lt;/DefiningProjectExtension&gt;&lt;/Item&gt; and &lt;Item Name="MyScript.js.map"&gt;&lt;DestinationRelativePath&gt;MyScript.js.map&lt;/DestinationRelativePath&gt;&lt;Exclude&gt;False&lt;/Exclude&gt;&lt;FromTarget&gt;CollectFilesFromContent&lt;/FromTarget&gt;&lt;Category&gt;Run&lt;/Category&gt;&lt;ProjectFileType&gt;Default&lt;/ProjectFileType&gt;&lt;FullPath&gt;C:\dev\Sandbox\WebApplication8\WebApplication8\MyScript.js.map&lt;/FullPath&gt;&lt;RootDir&gt;C:\&lt;/RootDir&gt;&lt;Filename&gt;MyScript.js&lt;/Filename&gt;&lt;Extension&gt;.map&lt;/Extension&gt;&lt;RelativeDir&gt;&lt;/RelativeDir&gt;&lt;Directory&gt;dev\Sandbox\WebApplication8\WebApplication8\&lt;/Directory&gt;&lt;RecursiveDir&gt;&lt;/RecursiveDir&gt;&lt;Identity&gt;MyScript.js.map&lt;/Identity&gt;&lt;ModifiedTime&gt;2015-06-25 19:50:35.7124176&lt;/ModifiedTime&gt;&lt;CreatedTime&gt;2015-06-25 19:50:35.7124176&lt;/CreatedTime&gt;&lt;AccessedTime&gt;2015-06-25 19:50:35.7124176&lt;/AccessedTime&gt;&lt;DefiningProjectFullPath&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\CollectFiles\Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets&lt;/DefiningProjectFullPath&gt;&lt;DefiningProjectDirectory&gt;C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\CollectFiles\&lt;/DefiningProjectDirectory&gt;&lt;DefiningProjectName&gt;Microsoft.Web.Publishing.OnlyFilesToRunTheApp&lt;/DefiningProjectName&gt;&lt;DefiningProjectExtension&gt;.targets&lt;/DefiningProjectExtension&gt;&lt;/Item&gt;. [C:\dev\Sandbox\WebApplication8\WebApplication8\WebApplication8.csproj]
</code></pre></div>
<p dir="auto">I think the problem is that the file is being added twice. Once by TypeScript\Microsoft.TypeScript.targets and also by Microsoft.Web.Publishing.OnlyFilesToRunTheApp.targets</p>
<p dir="auto">Typescript compiler lacks a native way of maintaining compilation options and source files for a given compilation unit like a project or a module. Using ///  can help ease the problem, but there is still a tax of adding and managing the references and it does not handle the compilation options issue. Moreover, different editors have different ways of representing project or module structure and compilation options which make cross-editor collaboration tricky.</p>
<p dir="auto">The proposal is to introduce a new file <code class="notranslate">.tsconfig</code> that marks a compilation unit (aka project or module). The .tsconfig follows the footsteps of the .git* file family. Calling tsc in a directory with a .tsconfig will use the contents of the file and all .ts files in the directory as inputs without the need to specify them on the command line again.</p>
<h3 dir="auto">.tsconfig in detail</h3>
<ul dir="auto">
<li>.tsconfig is a json file</li>
<li>The presence of a .tsconfig in a directory indicate that all .ts file in this directory and its sub directories recursively are part of the compilation unit
<ul dir="auto">
<li>.d.ts files generated from the compilation but live within the directory are not included in the compilation unit identified by .tsconfig</li>
</ul>
</li>
<li>.tsconfig can specify additional compilation settings for the compilation</li>
<li>Calling tsc in a folder containing .tsconfig will trigger compilation using the config file</li>
<li>Since .tsconfig is a json file, it can be leveraged by other tools (linters, editors, build tools etc..) to store TS related project configuration</li>
<li>Example .tsconfig</li>
</ul>
<div class="highlight highlight-source-json notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="{
    &quot;compilerOptions&quot;: [&quot;-t ES5&quot;, &quot;--out myoutput.js&quot;, &quot;--noImplicitAny&quot;],
    &quot;linterOptions&quot;: {
        &quot;suppressWarnnings&quot;: [234, 3363] 
    }
}"><pre class="notranslate">{
    <span class="pl-ent">"compilerOptions"</span>: [<span class="pl-s"><span class="pl-pds">"</span>-t ES5<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>--out myoutput.js<span class="pl-pds">"</span></span>, <span class="pl-s"><span class="pl-pds">"</span>--noImplicitAny<span class="pl-pds">"</span></span>],
    <span class="pl-ent">"linterOptions"</span>: {
        <span class="pl-ent">"suppressWarnnings"</span>: [<span class="pl-c1">234</span>, <span class="pl-c1">3363</span>] 
    }
}</pre></div>
<h3 dir="auto">Module example</h3>
<p dir="auto">Consider the following directory structure:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="shared/
    node.d.ts
    tools.ts
foo/
    .tsconfig
    a.ts // adds a ///&lt;reference&gt; to node.d.ts 
    b.ts
bar/
    .tsconfig
    c,ts // adds a /// &lt;references&gt; to tools.ts
    d.ts
    baz/
        e.ts"><pre class="notranslate"><code class="notranslate">shared/
    node.d.ts
    tools.ts
foo/
    .tsconfig
    a.ts // adds a ///&lt;reference&gt; to node.d.ts 
    b.ts
bar/
    .tsconfig
    c,ts // adds a /// &lt;references&gt; to tools.ts
    d.ts
    baz/
        e.ts
</code></pre></div>
<p dir="auto">Calling tsc in "foo" is equivalent to<code class="notranslate">tsc a.ts b.ts</code><br>
Calling tsc in "bar" is equivalent to <code class="notranslate">tsc c.ts d.ts baz/e.ts</code></p>
<h3 dir="auto">Using .tsconfig with tsc</h3>
<ul dir="auto">
<li>When calling tsc with no input files, the following steps are taken:
<ol dir="auto">
<li>Find the owning .tsconfig file by walking up the directory structure until a .tsconfig file is found, or the drive root is reached</li>
<li>If a .tsconfig was found, compilation will be triggered with all .ts files in the directory containing the .tsconfig and all its sub directories</li>
<li>The command line switch are compiled with the configuration options from the .tsconfig defining the compilation command line flags (e.g.: <code class="notranslate">tsc --watch</code> will cause a tsc to compile the contents of the current project in watch mode)</li>
</ol>
</li>
<li>When calling tsc with input a single directory name (e.g.: <code class="notranslate">tsc compiler</code>), If the directory contains a .tsconfig at the root, steps 2 and 3 from above are followed.</li>
</ul>
<h3 dir="auto">Specifying output order with --out and .tsconfig</h3>
<p dir="auto">when using --out, the compiler relies on the order of the files passed on the command line to order the emitted JavaScript code. If using .tsconfig, the compiler will look for a special file <code class="notranslate">_references.ts</code> at the root (next to the .tsconfig file), and will ensure that this file is the first file in the list of input files. this implies that ///  tags in _references.ts will specify order of the emitted files.</p>
<h3 dir="auto">Open issues:</h3>
<ol dir="auto">
<li>Should the tsconfig file have a <code class="notranslate">.json</code> extension to indicate intended content, and allow editors to correctly colorize it, format it, etc..</li>
<li>In a VS project context (say .csproj), should .tsconfig be honored, or ignored in favor of the project.</li>
</ol>