2009-10-12 71 views
3

我有一個充滿硬編碼字符串的大型ASP.NET項目,現在必須提取資源。這些字符串幾乎可以在任何地方找到(在.cs文件,.aspx文件,.ascx文件等中),並且文件數量很大。我正在尋找的是一個工具(或任何方式)在一個鏡頭中查找所有這些硬編碼的字符串,並將它們放在資源文件中,而不是通過手動通過每個文件。有這樣的事嗎?Visual Studio - 使用資源替代硬編碼字符串的工具

注意:我知道在第一次需要時將字符串放在資源中會比較好,但是這是一個2年前沒有人真正關心的項目(「沒有我的問題「哲學)。

非常感謝。

UPDATE:我試過CodeRush(我無法嘗試RGreatEx,原因很明顯),而且我在使用它時遇到困難。主要問題是我正在查找的字符串主要位於.aspx文件中,並且這些文件中的字符串沒有可用的「Refactor to resource」命令。

例如,我能有這樣的內容:

<dxwgv:ASPxSummaryItem DisplayFormat="{0}" FieldName="TOTAL" ShowInColumn="Total" SummaryType="Sum" /> 

我需要改變的是ShowInColumn = 「總計」並使它像ShowInColumn =」 <%$資源的一部分:PortalResource,合計%>「。這不是嚴格的字符串賦值,而是屬性賦值,所以「重構!」 CodeRush的命令不會出現。

我的目標是一次性找到所有這些元素,並在特定的界面(即本地化工具)中更改它們,而不是逐個查找它們並手動創建相應的資源。在每個文件內逐個重構將是一個改進,但仍然非常耗時...

回答

1

VisualStudio允許您使用RegEx進行搜索和替換。這不會是「一刀切」的解決方案,但它應該大大減少手動工作量。

只是一個想法。

+0

謝謝,我現在試圖找到所有的字符串,我必須改變,但我總是有困難與正則表達式。我想我會問另一個問題,如果我會卡住(因爲它可能會發生,大聲笑)。 – Diego 2009-10-13 09:47:06

1

如果你看看DevExpress' CodeRush它有你正在尋找的功能,你可能需要自動化它來做到這一點所有在一個鏡頭。

它還有很多!

善良,

1

嘗試RGreatEx。這是一個插件ReSharper

RGreatEx是Visual Studio最強大的本地化和編碼助手。一旦安裝完成,它可以讓您本地化.NET應用程序並生成更安全的代碼,從而節省高達95%的時間,開發人員通常會花費相同的時間來完成相同的操作。通過節省時間的重構,例如「移動到資源」和「重命名資源」來加強自己的能力。該插件將自動分析字符串和資源使用情況,並建議將字符串移動到資源。

+0

RGreatEx不再可用。功能將被整合到R#5.0中。 – 2009-10-12 10:46:32

1

你有ReSharper嗎?那麼你也許應該等待5.0版本。它將包含RGreatEx(mentioned by Anton)功能。閱讀關於此主題的thread from the R# forum

更新:該功能將在R#5.0。請參閱the official announcement

+0

閱讀主題對R#來說不是一個好的廣告:主題是從7月開始,現在是10月份,回覆的語氣非常傲慢,儘管這可能是跨語言的事情。 – 2009-10-12 11:11:00

+0

**問題**:*現在RGreatEx不再銷售,是否有計劃將類似的功能納入Resharper?* **回答R#Help Desk **:*是。* ...不再說。 .. – 2009-10-12 11:39:45

+0

請參閱resharper 6.0進行本地化-http://www.jetbrains.com/resharper/webhelp/Resources__Index.html – 2011-07-09 13:20:01

3

你可以在

http://www.codeplex.com/ResourceRefactoring

看看資源重構工具,它的一個實例,通過實例工具,而不是批量替換工具。它是免費的和獨立的,所以你不需要Resharper或Coderush。

+0

我試過這個工具,但它不起作用,因爲我需要。我有大部分的.aspx文件中的字符串,它們實際上是硬編碼的屬性(在我的文章中查看更多細節,我更新了它)。 CodeRush和ResourceRefactoring似乎都忽略它們,這對我沒有幫助。 :( – Diego 2009-10-12 14:16:40

3

查看CodePlex上的新開源項目VisualLocalizer:VisualLocalizer page。如果您有一些想法,請將它們作爲問題發佈 - 項目正在開發中,我們歡迎反饋意見。

相關問題