在我们的 VS2012 解决方案中,我们有多个 Web 应用程序都需要 javascript。我们使用 Telerik 的 Kendo UI for MVC4 ASP.Net 结合 jQuery 和 TypeScript 开发了一个单页应用程序。
由于有多个 Web 应用程序,我们创建了很多冗余的 TypeScript 和 Javascript。更改代码是一种拖累。我们必须一直同步所有 Web 应用程序的所有代码,这至少可以说很烦人。
我已经研究了这个问题的几种解决方案,但结果都是空的。以下是我调查的一些场景:
Visual Studio 中的链接
可以按住 Alt 键将整个“文件夹”从一个项目拖到另一个项目。这会导致该目标项目中源项目中所有文件的链接。这在 Visual Studio 中可以正常工作以进行编辑。这里的问题是,在运行时,应用程序需要文件位于正在执行的 Web 应用程序层次结构内的磁盘位置。因为它们是指向另一个位置的链接,所以服务器找不到文件。
放弃了这个解决方案。
磁盘上的符号链接
使用 Windows 中的“mklink”命令可以创建所谓的“符号链接”。这在视觉工作室中就像一个魅力。可以通过将现有(符号)目录从文件资源管理器拖到 Web 应用程序的树中来将它们添加到 Visual Studio 中。然后,您可以编辑文件,更改会立即反映在原始位置。我们让项目以此运行,并认为我们有解决问题的方法,直到我们想将它检查到 Subversion 中。Subversion 认为它是一个真正的文件夹,并尝试从原始位置签入带有版本信息的文件。经过几个令人沮丧的试验和错误后,我也放弃了这个解决方案。我们尝试了符号链接和连接点,但在这两种情况下我们都无法让它工作。
放弃了这个解决方案。
更多调查
我还研究了在 ASP.Net 应用程序中使用 WebResources.asxd 结合 JavaScript 作为嵌入资源的解决方案。我们也放弃了那个,因为除了增加的复杂性之外,它会增加我们在开发过程中的周转时间太多。我们必须为某个 JavaScript 文件中的每个更改构建解决方案,因此我们将失去我们现在拥有的非常快速的编辑可能性。我们现在可以简单地更改 JavaScript,将其保存到磁盘并刷新浏览器以使更改生效。
上面我们最喜欢的选项是带有符号链接的选项,但我们还没有找到解决 SubVersion 问题的工作。