【问题标题】:How to automate Visual Studio tasks following SVN update?如何在 SVN 更新后自动执行 Visual Studio 任务?
【发布时间】:2009-12-21 20:37:09
【问题描述】:

我有几个包含 SVN 外部的 Visual Studio Web 应用程序项目。当一个新文件被添加到外部模块时,VisualSVN 将它带到文件系统中,但不会将它添加到 Visual Studio 项目中;它必须手动添加。

我可能会编写一个宏来自动执行此过程,我想知道是否可以通过以下任一方式使其成为一步过程:

  1. 让宏启动 VisualSVN 更新,然后执行工作(问:是否可以从宏触发 VisualSVN 更新?)
  2. 挂钩到来自 VisualSVN 的假设“更新后”事件以触发宏来完成工作(问:这样的事件是否存在?)

【问题讨论】:

  • 我知道很多人强烈认为 svn:externals 是一个坏主意 - 希望我们可以将讨论保存到另一个线程。谢谢!
  • 将外部引用的项目集成到您的代码中所付出的努力不会比将项目添加到您的解决方案中的微小成本高出几个数量级吗?只需要在引入外部参考时执行一次,然后将更新的解决方案与外部参考一起签入。我错过了什么吗?
  • 您是在尝试让它执行Show All Files 命令,然后将所有不属于项目的项目添加到其中吗?
  • @Agent_9191:是的。尽管我还没有编写宏来执行此操作,但我想这没什么。我不清楚如何将其与 SVN 更新过程联系起来。

标签: visual-studio visual-studio-2008 svn tortoisesvn visualsvn


【解决方案1】:

我假设您目前正在这样工作:您的“外部模块”只是一个松散的源文件集合,没有项目文件。每当添加源文件时,您都会通过添加新的源文件来更新所有应用程序项目文件,以便将其编译到所有应用程序程序集中。

我认为你做错了。您的项目解决方案文件应包含对每个外部项目的单独 Visual Studio 项目文件的引用。每个源文件都应该被编译成一个程序集。

例如,您可能在多个 Web 应用程序之间共享一个 C# 库。这个库有它自己的 .csproj 项目文件,它位于外部位置。如果将源文件添加到库中,则会更新 .csproj。更新后的 .csproj 文件会在您更新项目时通过 svn:externals 声明拉取。

【讨论】:

  • 谢谢。出于这个问题的目的,我们可以将这种架构视为给定的吗?与每个模块一个项目相比,这种模式对我们更有效的原因有很多,我很乐意在其他地方进行介绍。
  • @wcoenen - 也许在这个问题上:stackoverflow.com/questions/530062/is-wcsf-for-me
猜你喜欢
  • 2017-02-06
  • 2018-09-24
  • 2020-06-03
  • 1970-01-01
  • 2017-05-20
  • 1970-01-01
  • 1970-01-01
  • 2010-09-06
  • 2010-12-24
相关资源
最近更新 更多