簡體   English   中英

當特征文件文本更改時,Specflow 更改 C# 文件后面自動生成代碼的 UTF 編碼

[英]Specflow changing UTF encoding of auto generated code behind C# file when feature file text changes

當我從對 Specflow 2.2.0 版的直接 DLL 引用升級到 3.1.7.4 版的 NuGet 引用時,我遇到了編碼問題。

現在,當我更改功能文件中的文本時,Specflow 會將其 C# 文件背后的關聯代碼的編碼從 UTF-8-BOM 更改為 UTF-8。 由於我們在 Cruise Control 構建中有一個腳本來驗證正在使用正確的編碼 (UTF-8-BOM),因此在運行此腳本時我們會收到警告。

修復很簡單,您只需在 Notepad++ 中打開 .cs C# 文件,單擊編碼菜單並將其從“以 UTF-8 編碼”更改回“以 UTF-8-BOM 編碼”並保存文件。

這顯然很容易忘記,記起來很煩人!

有沒有人想過如何阻止 Specflow 在每個功能文件更改時更改編碼,甚至為什么要這樣做?

按照 György Kőszeg 的建議,我在 github 上報告了這個問題,SabotageAndi 今天做出了以下回應,所以這個問題應該在未來的版本中修復。

我做了一些研究,發現 UTF-8 + BOM 確實是 C#- 文件的默認編碼。 這對我來說是一個驚喜,我一直認為它只是 UTF-8。

所以我很高興審查並接受解決此問題的 PR。 應該不會有大的變化。 我認為只需要更改https://github.com/SpecFlowOSS/SpecFlow/blob/master/SpecFlow.Tools.MsBuild.Generation/CodeBehindWriter.cs 中的 File.WriteAllText 調用。

更新

該問題現已修復,應該會在不久的將來發布。 https://github.com/SpecFlowOSS/SpecFlow/pull/1933

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM