【发布时间】:2014-05-23 03:32:57
【问题描述】:
构图
我有一个 MVC 项目,其中包含最终通过 ajax 等进行序列化和使用的 C# 类。我使用 TypeLite 生成这些 C# 类的定义(讨论了 TypeLite 的替代方案here),因此我可以在编译时检查使用这些 json 序列化 C# 类的代码。这样,如果 C# 定义发生更改而我的 TypeScript 代码没有更改,我将收到编译时错误,因为它直接与 C# 定义绑定
最初的问题
目前我的 TypeScript 与我的 C# 类存在于同一个项目中。所以我有一个非常奇怪的循环依赖问题。为了解决这个问题,我必须遵循一个非常特殊的模式
- 更新 C# 类
- 编译 MVC 项目
- 运行 TypeLite,生成定义
- 更新 TypeScript 或在下次构建时遇到编译错误。
我不喜欢这样,因为我无法在构建过程中自动运行 TypeLite。我不能这样做,因为 TypeLite 需要首先构建 MVC 项目中的 C# 程序集才能运行并访问定义。另外,我必须将生成的定义包含在代码存储库中,我不喜欢这样做,因为它生成的代码并且有人可能会忘记生成它并提交它/签入它。
建议的解决方案
如果我有一个依赖于我的 MVC 项目的 TypeScript 项目,我可以轻松打破这种循环依赖。这样我就可以在构建中包含 TypeLite,方法是将其从 MVC 项目中删除并将其放置在 TypeScript 项目中。
这种方法对我来说非常正确,因为 TypeScript 项目是一个单独的编译项目,它依赖于在它自己的项目之前构建的程序集。
实际问题/疑问
不幸的是,我不知道如何在我的 MVC 项目之外有一个 TypeScript 项目,该项目构建然后将生成的 JavaScript 复制回 MVC 项目(通过 web 部署和/或 azure web 角色部署进行部署)。 那么,我将如何拥有一个与我的 MVC 项目分开的 TypeScript 项目,该项目在 MVC 项目之后构建,然后将生成的 JavaScript 复制回 MVC 项目以进行部署?
【问题讨论】:
标签: asp.net-mvc build typescript webdeploy typelite