我们应该如何使用 Visualsvn 处理 .csproj 和 web.config
上下文:Windows 7、VS 2010、Tortoise SVN 和 VisualSVN(全部都是最新的)
我们的 web.config 文件和 .csproj 存在一些问题:在这些文件中存在整个项目通用的信息(例如连接字符串、配置)元素)和信息取决于机器(主要是文件路径)。
所以问题是,每次我提交 web.config 时,我的同事都必须返回到他的文件并更改文件路径。
你找到办法处理了吗?我尝试从源代码管理中删除它们,但这有点问题(每次有人向项目添加文件时,我们都必须手动添加它或配置密钥)。
谢谢
Context : Windows 7, VS 2010, Tortoise SVN , and VisualSVN (all up to date)
We have some problems with our web.config files and .csproj : in these files there is informations common to the whole project (like connection string, configuration element) and informations depending on the machine (mostly file path).
So the problem is, each time I commit my web.config, my colleague has to go back to his file and change the file paths.
Did you find any way to handle it ? I tried to remove these from source control but it's kind of a problem (each time someone add a file to the project we have to add it manually, or a configuration key).
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我们处理 web.config 中文件路径的一种方法是使用符号链接。
即在提交的 web.config 中,文件路径指向例如
C:\website
,然后在每台开发人员计算机上运行以下命令:因此,没有人需要重新编辑指向的路径他们的工作空间。
我们的 .csproj 文件没有出现问题 - 它们没有特定于机器的配置。
然而,我们在 app.config 设置方面确实遇到了类似的问题。再次通过让每个开发人员将文件存储在设定位置或具有从设定位置到其位置的符号链接来解决。
对于连接字符串,我们要么将它们全部设置为 localhost,要么将它们设置为 localdatabase,并在每台开发人员计算机上都有一个主机条目。仅当每个开发人员连接到相同的数据库名称但位于不同的服务器上时,这才有效。如果您要连接到同一数据库服务器但不同的数据库,则需要不同的策略。
One way we've handled file paths in the web.config is through the use of symbolic links.
i.e. in the commited web.config have the files paths point to e.g.
C:\website
then on each developers machine run the following command:Thus no-one should need to re-edit the paths to point to their workspace.
We've not had problems with our .csproj files - they don't have machine specific config in them.
We did however have similar issues with app.config settings. Again solved by either having each developer store files in a set location or having a symbolic link from the set location to their location.
For connection strings, we've either got them all set to
localhost
or set them tolocaldatabase
and have a host entry on each developers machine. This will only work if each developer connects to the same database name but on a different server. If you're connecting to the same database server but different databases, you'll need a different tactic.