1

Visual Studio 2010の設定エディターを使用して、.NET4web.configファイルのセクションから設定を追加/編集/削除しています。

これが私が意味するビットを説明するための(かなり漠然とした)抜粋の例です:

  <applicationSettings>
    <Animals.My.MySettings>
      <!-- Specify the type of animal this website is dedicated to... -->
      <setting name="AnimalType" serializeAs="String">
        <value>Monkey</value>
      </setting>
    </Animals.My.MySettings>
  </applicationSettings>

上記の例では、コメントは、構成ファイルをオンサイトで手動で編集する人に役立ちます(たとえば、Webアプリケーションが顧客サイトにデプロイされた後)。ただし、VS設定エディタを使用すると、設定を追加/編集/削除するたびにコメントが失われます。

これまでのところ、次の回避策を考え出しました。

  1. VS設定エディターを使用しないことを選択することもできますが、それを回避するようにチームに指示する必要があります。誰かが忘れてコメントをすべて失うことが常にあります...

  2. たくさんのコメントを入れて、web.configの別のコピーを保持することができます。次に、構成ファイルのコピーを使用してアプリケーションを出荷します...(2番目のコピーを最新の状態に保つことを忘れないでください。また、切り替えることを忘れないでください。このアイデアは好きではありません。リリース時の設定ファイル...覚えておくべきことが多すぎます。多すぎるとうまくいかない可能性があります)。

  3. 開始タグの上にコメントを追加しても問題ないように思われるので、すべてのコメントを一番上に置くことができます。

私の質問は:この問題を回避するための最良の方法は何ですか?おすすめは何ですか?

4

3 に答える 3

1

ConfigGenを使用して、環境固有のコメントを含む、環境固有の構成をすべて生成することを検討することをお勧めします。このページの例はあなたにいくつかの良いアイデアを与えるかもしれません。

基本的に、トークン化されたプレースホルダーと、各デプロイメント環境または開発マシンの行を含む設定ファイルを使用して、すべての環境の構成を編集するための単一の場所を提供します。マシンごとに、またはブール条件を使用して、マシンに関するコメントを含めたり除外したりできます。

また、私がこの回答に投稿した使用例を見てください...

いくつかのビルド構成に対して異なるapp.configを選択する方法

于 2011-11-10T17:27:30.863 に答える
1

オプション1と2は、チームの規律という同じ問題に悩まされています。1は、スタジオエディターを使用できないことを意味し、2は、「コメント」構成の同期を維持することを忘れないようにする必要があることを意味します。

個人的には、最初のものの方が強制しやすいと思います。ソース管理を使用している場合は、違反者が誰であるかはかなり明白です。

于 2011-11-10T17:28:30.337 に答える
0

私の回避策-これは.configコメント付きのファイルの一部です:

<setting name="Database" serializeAs="String">
<value>DBNAME</value>
</setting>
<setting name="ProgramPath" serializeAs="String">
<value>C:\Program Files (x86)\Vendor\Program V 11.1\prog.exe:: the P21 client -  KEEP SPACE in a comment will not remove spaces from the value</value>
</setting>
<setting name="Directory" serializeAs="String">
<value>\\Server\Share\Subdir :: where the files will be created</value>
</setting>
<setting name="FileIDs" serializeAs="String">
<value>DoThis, ThenThis :: DoThis or ThenThis or both comma separated - anything after two colons is a comment and is ignored</value>
</setting>

このVB.NET関数はコメントを削除し、デフォルトで埋め込みスペースを削除します

Function Run(S As String) As String
    Dim L As Integer = InStr(S, "::")
    If L = 0 Then
        Return S.Replace(Space(1), String.Empty)
    Else
        If InStr(S, "KEEP SPACE") = 0 Then
            Return S.Substring(0, L - 1).Replace(Space(1), String.Empty)
        Else
            Return S.Substring(0, L - 1)
        End If
    End If
End Function

于 2015-08-19T19:16:45.150 に答える