混合开发环境:自动化 Visual Studio .csproj 从 Git/TFS 更新?

Mixed Dev Environment: Automate Visual Studio .csproj updates from Git/TFS?

我希望你能帮我解决这个开发工作流程的烦恼。

我是一名前端开发人员,从事的项目大多数其他开发人员都使用 MS Visual Studio,而我不使用。我们已经设置了 TFS,我可以签出代码并在本地进行编辑。

进行编辑后,我通过 git addgit commit 将我的代码签入本地 Git 存储库,然后通过 git tf checkin.[=15 推送到 TFS =]

问题 是我们使用 Visual Studio 的开发人员在从 TFS 更新他们的工作区后无法看到我添加的文件。我们已将此问题的原因追查到 .csproj 文件——我添加到存储库的任何文件(例如 JavaScript、CSS)都必须手动添加到 [=35= 中的项目中],因为我的工作流程不使用 VS,也不更新 .csproj 文件。

提前感谢您的任何建议。

有很多可能的解决方案。一个 .csproj 文件是用 MSBuild XML 方言编写的,它有很多功能:有一个完整的 book 解释了所有的细微差别。

解决方案 1

您手动编辑 .csproj 文件,添加新文件。

解决方案 2

同上,但您对文件名使用通配符,例如

<Content Include="Images\orderedList*.png" />

解决方案 3

包括一个单独的 .proj 文件,以便明确您管理的内容。 在主 .csproj 添加

  <Import Project="Felix.proj" />

而不是单独创建 Felix.proj

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Content Include="Images\orderedList*.png" />
</Project>

我们可以继续,但这可能是一个起点。

解决方案 4

另一种方法是更改​​您的工作流程:通过 Visual Studio 而不是命令行提交。这是一个方法:

  • 安装Visual Studio(至少2013 Update 4,社区版应该可以)
  • 以您喜欢的方式编辑/添加文件
  • 使用Visual Studio
  • 打开.csproj
  • 在“解决方案资源管理器”面板中 select 显示所有文件 选项
  • 右键单击缺少的 file/folders,然后 select 包含在项目中
  • 保存更改
  • 切换到团队资源管理器选项卡,您应该会看到 Git 操作的红色按钮
  • select 更改 并进行提交
  • 返回 git tf
  • 的命令行

YMMV

解决方案 5

编写您自己的解析 git status 的工具,将添加的文件附加到 .csproj 并将后者添加到舞台。一个脚本就可以做到。