4

Config ファイルに次のコード行があります。

<appSettings>
    <add key="Microsoft.ServiceBus.ConnectionString" value="Endpoint=sb://{ComputerName}/ServiceBusDefaultNamespace;StsEndpoint=https://{ComputerName}:9355/ServiceBusDefaultNamespace;RuntimePort=9354;ManagementPort=9355" />
  </appSettings>

そこに {ComputerName} が表示されます。この名前は、現在のコンピューター名によって異なります。また、ソース管理ツールを使用すると、他のコンピューター プロジェクトが接続文字列で実行されないという問題が発生します。

この問題を回避するにはどうすればよいですか?

svn でこのファイルを無視することはできません。これは、将来変更される可能性があり、この変更を失う可能性があるためです。

おそらく、この問題はsvnレイヤーまたはビジュアルスタジオで解決できます。

4

3 に答える 3

2

localhostコンピューター名の代わりに使用するか、そのプレースホルダーを使用して実行時に置き換えることができます。

または、このキーをソース管理に入らない別の構成ファイルに入れることもできます。

<!-- In your regular app.config/web.config -->
<appSettings file="user.config">
  <!-- You can have normal stuff here -->
</appSettings>

<!-- In a file called user.config -->
<appSettings>
  <add key="whatever" value="JoesMachine" />
</appSettings>

user.config はソース管理にまったく含まれず、各人のマシンに存在する必要があります。これは、新しい開発者をセットアップする場合の余分な手順ですが、うまくいく可能性があります。(Web アプリではなく Windows アプリの場合は、プロジェクトの user.config で [出力ディレクトリにコピー] を [常にコピー] に設定して、bin ディレクトリに移動できるようにしてください。)

于 2013-04-18T15:14:24.097 に答える
2

1行も無視できません。

通常、全員が変更する必要がある構成ファイルがある場合は、このアプローチを使用します。

Visual Studio を使用しているため、ビルド用に異なる構成を作成し、それらを使用してビルド時に最終的な構成ファイルを変更することで、これを回避できます。

于 2013-04-18T15:16:19.963 に答える
1

現在のように構成にプレースホルダー テキストを配置し、初期化時のコードで Environment.MachineName を使用してプレースホルダー テキストを置き換えます。プレースホルダー テキストを構成設定として割り当てることもできるので、ハードコーディングすることはありません。

于 2013-04-18T15:13:49.650 に答える