开源:VS自动化实现对aspx和ascx批量生成resx
2014-01-16 13:08 山不转水转... 阅读(1462) 评论(2) 编辑 收藏 举报简介
这个是一个Visual Studio 2013的插件,安装后在VS的Tools菜单下生成一个AutoResx菜单项,点击后对项目里的每个aspx和ascx重新生成resx文件。
可以从VS的Tools->Extensions and Updates,在online里搜索AutoResx,或从【http://visualstudiogallery.msdn.microsoft.com/2721069a-104d-4153-b5e0-ab07f0e5ff1f】下载插件安装。为防止万一,使用前请备份你的代码。
源码地址:https://github.com/cuiliang/AutoResx
问题起源
如果一个Webform项目要做国际化,通常首先要做的操作为:在VS中打开每个aspx和ascx文件,切换到设计视图,点击Tools菜单下的Generate Local Resource菜单项。
如果项目里有比较多的aspx和ascx,这个工作做起来是很枯燥和费时的。
URTracker早先的版本做过国际化(支持简体/繁体和英文),但是后来因为犯懒的原因,再加上英文的版本需求很少,所以在增加功能和修改现有功能的时候,都直接在代码里写简体中文了。
现在忽然有客户需求英文版,这下可麻烦了。现有aspx和ascx加起来接近300个,要每个文件重新生成resx,然后才能使用Passolo继续做翻译生成其他语言的资源文件。
为了能节省时间,VS能不能自动做这个工作呢?
俺首先想到了能不能用“宏”,Google搜到了一些使用宏调用Tools.GenerateLocalResource的代码(http://forums.asp.net/t/1280608.aspx),结果后来发现VS2013不支持宏了,郁闷。
有没有其他方法呢?答案是有的,我们可以看到这VS的Tools菜单下,有Add-in Manager...,那么Add-in应该可以实现我们的需求。
继续google,发现Add-in也过时了,现在推荐的是开发Visual Studio Package项目... 好吧,只好这样了。
创建Visual Studio Package项目
首先要安装Visual Studio SDK。
在VS2013中, 创建项目,选择“Visual Studio Package”项目类型。
输入项目名称等。。。进入Wizard。
Next
挑选一种语言,别的都忘了,选C#。
输入公司信息,包的描述说明。这些,要发布在visualstudiogallery时会显示。
包含什么功能? 我们是要在Tools菜单下增加一个菜单项,这里选“Menu Command”
选择菜单的标题和ID,再点Next,选择test project的选项。没时间把它们搞明白了,就不选了。
Wizard完成后,会生成整个项目。
找到(VSPackage name,Wizard第二页里选择的名字)Package.cs文件,我们的主要代码就放在这个文件里了。
private void MenuItemCallback(object sender, EventArgs e)
这个函数就是点击了我们放在Tools里的菜单后触发的事件。
生成resx的大概逻辑
基本的过程是这样的:
- 找到项目里所有的aspx和ascx文件
- 对每个文件进行处理
- 打开文件
- 进入设计视图
- 等待视图加载完
- 执行Tools->Generate Local Resource 命令
- 保存
详细就不解释了,见代码。
怎么发布到VisualStudioGallery
发布后,可以直接通过VS的扩展管理器下载和更新组件,会很方便。步骤:
- 打开www.visualstudiogallery.com
- 点击“Upload”
- 登录网站
- 选择“Tools”类型
- 。。按提示操作就可以了。
发现bug欢迎反馈给我,谢谢!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述