gpt4 book ai didi

c# - 推荐用于跨多台计算机共享项目的 C# .Net 项目配置

转载 作者:行者123 更新时间:2023-11-30 21:23:47 28 4
gpt4 key购买 nike

我是唯一一个从事 ASP.Net MVC 项目的开发人员,但在开发过程中会在多台计算机上共享它。我正在使用 VS 2008,并将针对 Subversion 或 Git 进行备份。我正在寻找有关如何配置项目依赖项和 web.config 文件的建议,以减轻系统之间转换的痛苦。

我的 web.config 文件提供了不同系统之间可能不同的数据库连接字符串。推荐的方法是什么来推迟它以使其特定于开发环境?

我的测试项目依赖于 NUnit、Moq 以及其他库。如果这些库的位置在开发系统中不同,这是否会破坏引用?如果是这样,我该如何缓解这个问题?

最佳答案

My web.config file provides the database connection strings that may differ between the systems. What is recommended method to defer this such that it is specific to the dev environment?

对于 App|Web.config,这是我们所做的:

  1. 将 web.config 添加到 svn:ignore
  2. 将 web.config 复制到 web.default.config
  3. 添加 web.default.config 到 svn
  4. 将以下内容添加到您的 BeforeBuild 目标

<Target Name="BeforeBuild">
<CallTarget Targets="SetupWebConfig" />
</Target>
<Target Name="SetupWebConfig" Condition="!Exists('Web.config')">
<Copy SourceFiles="Web.default.config" DestinationFiles="Web.config" />
</Target>

FWIW,我们还有另一个目标,它在 SetupWebConfig 之前被调用,如果构建服务器正在编译项目,它会删除 web.config,这允许包含对 web.default.config 的更改。

您可以使用 Web.default.config 中的标记和一些正则表达式来花哨并自动替换 Web.config 中的内容。这也可以捆绑到 SetupWebConfig 目标中。如果您想查看示例,请告诉我。我们这样做是为了在我们的 CI/构建服务器上设置连接字符串和类似的东西。

My test project is dependent on NUnit, Moq, among other libraries. If the location of these libraries differs across the dev systems does this break the references? If so, how can I mitigate this issue?

我的建议是将这些库包含在您的 subversion/git 存储库中,将它们放在一个公共(public)区域,而不是您的项目中,这样您就可以重用它们。使用相对 svn:externals 引用它们(记住将外部设置为特定的修订号)。这解决了您的问题,并且允许您细粒度地控制要使用的每个工具的版本,这有利于在分支机构上测试和维护已发布的产品。

关于c# - 推荐用于跨多台计算机共享项目的 C# .Net 项目配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1541840/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com