2011-11-10 14 views
1

我正在使用Visual Studio 2010中的設置編輯器來添加/編輯/從我的.NET 4 web.config文件的部分刪除我的設置。如果我使用Visual Studio的設置編輯器,有沒有一種方法可以防止web.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> 

在上面的例子中,註釋是任何手動編輯現場配置文件(例如,一旦網絡有用應用程序已部署到客戶站點)。但是,如果我使用VS設置編輯器,每當添加/編輯/刪除設置時,評論都會丟失。

到目前爲止,我已經拿出了以下工作方式:

  1. 我可以選擇從未使用VS設置編輯器,但我要告訴我的團隊,以避免它也一直存在,有人忘了,我們失去了我們的所有意見...

  2. 我可以保留web.config的一個單獨的副本,其中有一堆評論。然後,我們將應用程序與配置文件的副本一起發送...(我不喜歡這個想法,因爲這意味着我必須記住保留第二個副本,我需要記住最新的在發佈時切換配置文件...太多要記住;太多可能會出錯)。

  3. 在開始標籤上方添加註釋似乎是可以的,所以我可以將我所有的註釋都放在頂部。

我的問題是:什麼是解決此問題的最佳方法?你有什麼建議?

+0

選項2實際上可能是您最好的選擇:您是否真的想要將開發配置意外傳送給生產客戶? –

回答

1

方案1和2有同樣的問題:團隊紀律。 1意味着他們不能使用工作室編輯器,2意味着他們必須記住保持「評論」配置同步。

就我個人而言,我認爲第一個更容易執行,如果您使用源代碼控制,那麼很明顯誰是違規者。

+0

不幸的是,我們不使用源代碼管理...尚未...(http://programmers.stackexchange.com/questions/112270/is-it-unusual-for-a-small-company-15-developers-不使用的管理源-VERS)!雖然我正在努力! – LordScree

+0

@LordScree:剛剛通讀這個問題;我只能說哇,祝你好運。聽起來你可能會遇到類似的行爲問題。 – NotMe

+1

@LordScree,在閱讀了關於源代碼管理的問題後,我認爲你應該做的最好的事情就是更新你的cv。那家公司不會再待很長時間了。 –

1

我建議您看看使用ConfigGen生成所有特定於環境的配置,包括環境特定的註釋。這個頁面上的例子可能會給你一些好的想法。

從本質上講,它爲您提供了一個位置來編輯您的所有環境的配置,使用標記化佔位符和設置文件以及每個部署環境或開發機器的行。您可以按計算機或使用布爾條件在機器上包含/排除註釋。

而且,看看使用我張貼在這個答案的例子...

How to select different app.config for several build configurations

+2

+1,因爲ConfigGen似乎可以做到這一點,但它有點像使用巨劍來切面包。你得到切片面包,但你必須從某處找到一把偉大的劍,並且存在大量健康和安全問題... – LordScree

+0

+1有趣的評論,但我覺得它更像是削皮刀或土豆削皮器。 –

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 

相關問題