我们有一个包含多个平台的多个应用的解决方案文件。在开发用户故事时,可以选择10个项目作为默认启动项目。不幸的是,StartupItem存储在sln文件中,因此导致我们的版本控制系统中出现意外的合并(或更糟糕的是:冲突)。据我了解,Visual Studio有一个.suo文件来存储每个用户的这些设置。
为什么Xamarin Studio将StartupItem存储在sln文件中?是否支持suo文件?或者这个提交ping-pong还有其他解决方法吗?
答案 0 :(得分:3)
如果您使用Git作为版本控制系统,您可以轻松定义特定文件的过滤器,如this answer中所示:
*.sln filter=startupitem
文件中定义新过滤器.gitattributes
,或在.git/info/attributes
中全局定义过滤器。git config filter.startupitem.clean "sed '/StartupItem\ =\ .*.csproj/'d"
定义此过滤器的行为。 (您也可以使用--global
选项。)Git仍会将解决方案文件列为未提交的更改。但是当将文件添加到舞台时,将应用过滤器并且线条消失。
结帐后,此行缺失,Xamarin设置了一些默认启动项目。从现在开始,您可以在不检查选择的情况下切换项目。 Xamarin只会本地将该行添加回*.sln
文件。
答案 1 :(得分:1)
只需注意 - Xamarin已在5.7版本中修复此问题:
http://developer.xamarin.com/releases/studio/xamarin.studio_5.7/xamarin.studio_5.7/
从发行说明:"启动项目名称现在存储在用户解决方案设置文件中,而不是.sln文件中。"
所以> = v 5.7不需要过滤器或任何特殊的东西。
答案 2 :(得分:0)
一种解决方案是在您签入时检查文件的逐个文件更改。因此,除非添加了新项目,否则不应该对解决方案文件进行检查。
我们在工作中所做的下一个目标是使用premake构建解决方案文件。因此,我们不再检查.sln或.vcproj文件,因为这些文件是在结帐后自动构建的。这个解决方案是为了解决项目文件发生了很大变化的事实,因此开发中心没有听取第一条规则"检查你的更改"