如何向现有Git仓库正确添加Visual Studio解决方案/项目
Visual Studio 集成C代码DLL与C#解决方案的Git标准工作流
第一步:提前配置仓库根目录.gitignore
不需要找VS内置的自动生成.gitignore功能,直接在仓库根目录新建.gitignore文件,写入以下规则即可过滤所有VS生成的本地缓存、用户配置、编译中间文件,从根源避免把带本地路径的冗余文件推到远端:
# VS 工作区与用户本地配置 .vs/ *.suo *.user *.userosscache *.sln.docstates *.VC.db *.VC.opendb ipch/ # 编译生成的中间目录与临时文件 [Dd]ebug/ [Rr]elease/ x64/ x86/ [Bb]in/ [Oo]bj/ *.cache *.log *.tlog *.lib *.exp *.pdb *.ilk *.tmp *.temp # 编辑器临时文件 *.swp *~
注意:单独在仓库根目录创建
libs/文件夹用来存放最终要分发的C代码编译DLL,这个目录不要加进忽略规则。不要把最终DLL放在上述被忽略的Debug、Release这类自动生成目录里。
第二步:项目搭建与配置
- 克隆仓库不需要依赖VS操作,你平时用命令行、VSC或者Vim执行
git clone <仓库地址>拉取代码即可,后续直接用VS打开本地仓库文件夹就行,和VS自带的克隆功能效果完全一致。 - 打开VS选择「打开本地文件夹」选中仓库根目录后,先配置C代码的编译规则:
- 将C项目的编译输出路径修改为你之前创建的
libs/目录,不要用默认的Debug/Release输出路径。 - 执行一次编译,确认
libs/目录下生成了目标DLL,功能验证正常。
- 将C项目的编译输出路径修改为你之前创建的
- 添加C#解决方案:在解决方案资源管理器右键根节点,选择「添加-新建项目」,选择你需要的C#项目类型(控制台、类库、桌面应用等),建议把C#项目统一放在根目录下的
csharp/文件夹里,和C源码目录分开,方便后续维护。 - 给C#项目添加DLL引用时,选择「浏览」选项选中
libs/目录下编译好的DLL,不要选COM组件、全局程序集缓存内的资源,VS会自动保存相对路径引用,不会写死你本地的绝对盘符路径。
第三步:提交前的文件校验
执行git status核对待提交文件列表,只有以下类型文件是需要推送到远端的,其余出现在列表里的文件一律检查.gitignore规则是否生效,不要强行提交:
- C代码相关:
.c/.h源码文件、C项目的.vcxproj、.vcxproj.filters配置文件 - C#相关:
.sln解决方案文件、.csproj项目文件、.cs源码文件、不带本地自定义路径的全局配置文件(如app.config、appsettings.json) - 依赖文件:
libs/目录下预编译好的DLL文件 - 仓库配置:根目录的
.gitignore文件 - 业务相关的文档、脚本等自定义文件
校验提示:如果待提交列表里出现
.vs/目录、.user后缀文件、.VC.db文件、Debug/Release目录下的内容,说明.gitignore规则未正确生效,修正规则后再提交。
第四步:推送与协作验证
- 首次推送完成后,找协作者做一次拉取测试:拉取代码后直接双击根目录的
.sln文件打开解决方案,点击生成按钮,确认不需要手动编译C代码、不需要手动重新引用DLL即可完成构建,就说明配置正确。 - 后续C代码更新时,你只需要在本地重新编译C代码,把
libs/目录下更新后的DLL提交推送即可,协作者拉取代码后会自动拿到最新版DLL,不需要自行执行C代码编译操作。 - 如果协作者构建时提示找不到DLL,检查你提交的C#项目里的DLL引用路径是否被写成本地绝对路径,修改为
libs/下的相对路径后重新提交即可。
内容的提问来源于stack exchange,提问作者user19435638
相关产品推荐
相关产品推荐

