混合开发环境:自动化 Visual Studio .csproj 从 Git/TFS 更新?
Mixed Dev Environment: Automate Visual Studio .csproj updates from Git/TFS?
我希望你能帮我解决这个开发工作流程的烦恼。
我是一名前端开发人员,从事的项目大多数其他开发人员都使用 MS Visual Studio,而我不使用。我们已经设置了 TFS,我可以签出代码并在本地进行编辑。
进行编辑后,我通过 git add
和 git commit
将我的代码签入本地 Git 存储库,然后通过 git tf checkin
.[=15 推送到 TFS =]
问题 是我们使用 Visual Studio 的开发人员在从 TFS 更新他们的工作区后无法看到我添加的文件。我们已将此问题的原因追查到 .csproj 文件——我添加到存储库的任何文件(例如 JavaScript、CSS)都必须手动添加到 [=35= 中的项目中],因为我的工作流程不使用 VS,也不更新 .csproj 文件。
- 有没有人遇到过类似的情况并找到了解决办法?
- 是否有一种工具可以注意到添加的文件并更新 .csproj 文件以匹配?
- 也许 Visual Studio 中有一个设置,以便它注意到其目录中的新文件并自动将它们添加到项目中?
提前感谢您的任何建议。
有很多可能的解决方案。一个 .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
并将后者添加到舞台。一个脚本就可以做到。
我希望你能帮我解决这个开发工作流程的烦恼。
我是一名前端开发人员,从事的项目大多数其他开发人员都使用 MS Visual Studio,而我不使用。我们已经设置了 TFS,我可以签出代码并在本地进行编辑。
进行编辑后,我通过 git add
和 git commit
将我的代码签入本地 Git 存储库,然后通过 git tf checkin
.[=15 推送到 TFS =]
问题 是我们使用 Visual Studio 的开发人员在从 TFS 更新他们的工作区后无法看到我添加的文件。我们已将此问题的原因追查到 .csproj 文件——我添加到存储库的任何文件(例如 JavaScript、CSS)都必须手动添加到 [=35= 中的项目中],因为我的工作流程不使用 VS,也不更新 .csproj 文件。
- 有没有人遇到过类似的情况并找到了解决办法?
- 是否有一种工具可以注意到添加的文件并更新 .csproj 文件以匹配?
- 也许 Visual Studio 中有一个设置,以便它注意到其目录中的新文件并自动将它们添加到项目中?
提前感谢您的任何建议。
有很多可能的解决方案。一个 .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 打开
- 在“解决方案资源管理器”面板中 select 显示所有文件 选项
- 右键单击缺少的 file/folders,然后 select 包含在项目中
- 保存更改
- 切换到团队资源管理器选项卡,您应该会看到 Git 操作的红色按钮
- select 更改 并进行提交
- 返回
git tf
的命令行
.csproj
YMMV
解决方案 5
编写您自己的解析 git status
的工具,将添加的文件附加到 .csproj
并将后者添加到舞台。一个脚本就可以做到。