2009-10-12 67 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。如果您有一些想法,请将它们作为问题发布 - 项目正在开发中,我们欢迎反馈意见。

相关问题