我在多个项目中使用TypeScript。我们有一个" Core"其他项目使用的API。
对于开发,我想使用参考路径。所以在ProjectB中我去了:
Right Click Solution > Add Existing > c:/projectA/myfile.min.js
但是当我运行我的解决方案时,引用路径不会复制到IIS。基本上," myfile.min.js"无法找到。
这是有道理的,因为我想IISExpress将c:/projectB/
视为根目录。由于引用路径实际上是一个空白文件夹.... C:/projectA/
存在于范围之外。
如何解决这个问题?
注意:我们的生产版本很好。更容易开发。
答案 0 :(得分:3)
为了调试我的解决方案,我这样做了。
In ProjectAPI.proj
<Project>
...
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<TypeScriptTarget>ES5</TypeScriptTarget>
<TypeScriptIncludeComments>true</TypeScriptIncludeComments>
<TypeScriptSourceMap>true</TypeScriptSourceMap>
<TypeScriptOutFile>js\Base.js</TypeScriptOutFile>
<TypeScriptModuleKind>none</TypeScriptModuleKind>
<TypeScriptSourceRoot>$(ProjectDir)js/</TypeScriptSourceRoot>
<TypeScriptMapRoot>$(ProjectDir)js/</TypeScriptMapRoot>
</PropertyGroup>
<PropertyGroup>
<PostBuildEvent>
if $(ConfigurationName)==Debug copy "$(ProjectDir)js\Base.js" "$(ProjectDir)..\..\..\Shared\"
if $(ConfigurationName)==Debug copy "$(ProjectDir)js\Base.js.map" "$(ProjectDir)..\..\..\Shared\"
</PostBuildEvent>
</PropertyGroup>
</Project>
In PojectWebSite.proj
<Project>
...
<PropertyGroup>
<PreBuildEvent>
if $(ConfigurationName)==Debug copy "$(ProjectDir)..\..\..\Shared\Base.js" "$(ProjectDir)js\"
if $(ConfigurationName)==Debug copy "$(ProjectDir)..\..\..\Shared\Base.js.map" "$(ProjectDir)js\"
</PreBuildEvent>
</PropertyGroup>
</Project>
TypeScriptMapRoot是发现的秘密。