git and visual studio 2010 express

git and visual studio 2010 express

本文关键字:2010 express studio visual and git      更新时间:2023-10-16

我使用visual studio 2010 express已经有一段时间了,并且在相当长的一段时间内参与了一些广泛的项目。由于我已经接近50-60个文件和数千行代码,我决定对所有内容进行源代码管理,以便在我的所有设备之间更容易更新和访问项目,同时也可以进行备份。

我以前使用过git,对它很满意,但现在当我提交并将其推送到bitbucket.org上的远程存储库时,我发现.vcxproj文件在保留其正确的文件结构的同时,还保留了推送设备的include和lib目录,这意味着当被推送到另一台计算机时,那些include/lib目录将查找错误的目录,这意味着每次拉/推时我都必须修改所有目录。

我的问题是,我是否可以将文件推送到存储库,以便解决方案保留文件夹设置,但不保留include和lib目录设置?

编辑:

经过一些研究,我在visualstudio中查看了这些所谓的属性表,这些文件可以添加到您的项目中。你设置的设置优先于项目的设置,但问题是,如果你将单个属性文件添加到项目中,然后推送.sln文件和没有.props文件的各种.vcxproj文件,然后其他人从存储库中克隆,它就不会打开,因为它显然需要该props文件。

我想要的是远程存储库中的默认.props文件,当克隆到该文件时,该文件将不再被跟踪,然后用户可以自己编辑它。我对git思想的了解还不足以让这一切发生。有人有主意吗?

我不确定你的问题到底是什么,但我的理解是:

  1. 您的项目文件包含绝对路径(例如"C:\myproj\include")。将这些替换为相对路径(例如".\include")。"$(SolutionDir)"变量有助于:如果您的解决方案文件是C:\myproj\myproj.sln,则"$(olutionDir)include"与"C:\myproj \include"相同。您可以分别在项目属性>配置属性>C/C++和链接器中更改包含目录和库目录。

  2. 您的项目需要第三方库,比如boost,而这些库在您的项目之外,比如C:\boost。不幸的是,Windows/VS没有第三方库的标准位置,因此您可以:

    • 将库包含在项目中。这对于小型库来说非常好,但你不想用boost这样的东西来做,boost既大又易于广泛使用
    • 强制所有设备在同一位置设置这些库,例如C:\sdk
    • 在项目中使用环境变量,如$(SDK_DIR),并且所有设备都必须设置此环境变量

如果这有帮助,请告诉我。

您想要的是git的污迹和干净过滤器。您必须编写一个清理脚本,但sed可能会做得很好,您不需要真正的xml解析。