gpt4 book ai didi

c# - 如何使 C# 项目的设置特定于用户?

转载 作者:太空狗 更新时间:2023-10-29 23:23:01 25 4
gpt4 key购买 nike

我正在使用 Visual Studio 2013 编写 Web API 2.0 项目和测试项目。

在测试项目中,我在 Settings.settings 文件中保存了一些信息(在 Solution Explorer 中的 TestProject->Properties 下)。其中保存的内容之一是连接到本地存储的数据库的连接字符串。

不幸的是,每个人下载 repo 时,连接字符串在每个人的计算机上会略有不同。当人们将他们的代码推送到主存储库时,它会覆盖连接字符串,影响其他人。

让每个用户都可以配置它的最佳方法是什么,这样每个人都可以拥有自己的数据库路径,但推送到 master repo 不会影响任何人?

编辑

我不认为这与 that other question 完全相同.虽然,是的,我的配置设置存储在 app.config 中(因为它们恰好是应用程序设置而不是用户设置),但按照其他答案中的解决方案将使我遇到同样的问题。 app.config 将包含 configSource="otherconfig.config",当人们将 那个 文件推送到主存储库时,它仍然会破坏其他人的值(value)观。我需要一些允许自定义配置在不影响项目的其他用户的情况下进行源代码控制的东西。

最佳答案

Visual Studio 通过 Web.config 转换自动处理 WEB 项目

您需要安装单独的插件以用于 App.config 和非 Web 项目。 http://visualstudiogallery.msdn.microsoft.com/579d3a78-3bdd-497c-bc21-aa6e6abbc859该插件基本上将相同的功能添加到 app.config 文件,并在转换文件中使用相同的语法。

最好的方法是使用构建配置文件。拥有特定于开发人员的 Web.developer.config,您可以让每个用户在 Configuration Manager 中选择他们的名字。然后只需进行新的配置,这在技术上是一个 XSLT 进行每个团队成员所需的更改。

将其视为调试与发布配置,除非在您的情况下您将有很多调试(每个用户一个)。您设置的构建配置文件不会 checkin TFS,所以您没问题。

这是子配置的样子:

  <?xml version="1.0" encoding="utf-8"?>

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<!--
In the example below, the "SetAttributes" transform will change the value of
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
finds an attribute "name" that has a value of "MyDB".
-->
<connectionStrings>
<add name="RavenDB" connectionString="Url=http://xxx/databases/xxx" xdt:Transform="Replace" xdt:Locator="Match(name)"/>
</connectionStrings>

<appSettings>
<add key="BaseUrl" value="http://xxx" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
</appSettings>
<system.net>
<defaultProxy enabled="true" />
<mailSettings>
<smtp xdt:TrandeliveryMethod="Network" transform="Replace">
<network xdt:Transform="Replace" host="xxx" defaultCredentials="true" />
</smtp>
</mailSettings>
</system.net>
</configuration>

关于 web.config 转换的更多信息 http://www.hanselman.com/blog/ManagingMultipleConfigurationFileEnvironmentsWithPreBuildEvents.aspx

关于c# - 如何使 C# 项目的设置特定于用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21166784/

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