2016-11-24 158 views
0

考慮一組開發人員在ASP.net Web應用程序上工作。每個開發人員都希望擁有web.config的專用版本。 「私人」我的意思是,開發人員可以在任何時候自由地更改文件以適應他們的開發/測試需求,而不會影響其他團隊成員,也不會結束源代碼管理。每個開發人員的私人web.config

如何才能在Visual Studio 2015中實現這一目標?

到目前爲止,我最接近的解決方案是從源代碼管理中排除一個「私人」Solution Configuration與匹配的Web.config Transformation文件(「web.private.config」)。

但是這不是一個令人滿意的解決方案,因爲:

a。調試時不會自動運行轉換(使用F5)。開發人員需要記住手動運行它。

b。轉換的結果在主要的「web.config」文件中結束,該文件自然包含在源代碼控制中。

回答

1

有無web.config中包括一個外部文件(通過configSource)和文件添加到.gitignore

+0

這很可能會解決我的問題。如果外部文件不在磁盤上,會發生什麼情況?拋出的任何錯誤還是被忽略? – urig

+1

不能回想起ottomh,但https://msdn.microsoft.com/en-us/library/system.configuration.sectioninformation.configsource(v=vs.110)。aspx聲明獲取或設置定義關聯配置節的包含文件的名稱,**如果存在這樣的文件。** –

1

正確答案是將您的本地開發站點託管在與Visual Studio解決方案不同的位置。然後,您可以使用publish profiles發佈對該位置的更改並web.config transforms爲每個開發人員維護一個單獨的本地配置。每個開發人員都會使用不同的發佈配置文件,該配置文件將自己的轉換轉換爲web.config,並將轉換後的web.config部署到發佈位置。然後,您可以使用Visual Studio的「調試」>「附加到進程」選項將調試器附加到發佈的站點。

+0

感謝。這是一種可行的方法,但必須每天多次重新部署和使用遠程調試對於該團隊來說不夠方便。要調試的主流程需要在開發人員自己的機器上運行。 – urig

+0

我不是在談論遠程調試。在本地創建一個iis站點,從您的克隆的repo發佈到它,然後附加一個本地調試器。我提到的「獨立位置」不是一個單獨的服務器,就在您本地文件系統的其他位置。如果您的本地開發人員使用相同的位置和相同的命名本地數據庫,他們甚至可以共享相同的發佈配置文件,這樣更好。 – getsetcode

1

我認爲在標準化開發環境中有很多價值,以便人們可以下載解決方案並運行它。

自定義的,長期的/永久的,開發人員特定的配置遲早會導致一個微妙的錯誤,將很難找到。

我對您的問題的解決方案是找出爲什麼需要永久性個人配置的原因,並看看是否可以消除這些環境特定的差異。

+0

我非常同意標準化開發環境通常是前進的方式。在這種情況下,團隊會產生阻力,因爲系統由多個獨立的Web服務組成,團隊成員在調試時不需要在他們的機器上啓動所有這些服務。 – urig

+1

@Urig如果團隊不想啓動所有服務,因爲它很困難,那麼它可以變得更簡單(launch_all.bat?)。 – mayu