我正在使用ResXResourceWriter / ResXResourceReader创建/更新TFS中的resx文件,该文件不会生成.Designer.cs文件.我看到Resgen创建了.Designer.cs.我如何以编程方式调用在特定TFS文件路径上生成.Designer.cs?是这样吗?
ProcessStartInfo startInfo = new ProcessStartInfo(@"C:\Program Files\Microsoft.NET\SDK\v2.0 64bit\Bin\ResGen.exe"); startInfo.WindowStyle = ProcessWindowStyle.Minimized; startInfo.Arguments = "ResourceName.resx /publicClass /str:cs,Namespace,ResourceName,ResourceName.Designer.cs"; Process.Start(startInfo);
解决方法
我发现如何以编程方式生成.Designer.cs文件.
string[] unmatchedElements; var codeProvider = new Microsoft.CSharp.CSharpCodeProvider(); System.CodeDom.CodeCompileUnit code = System.Resources.Tools.StronglyTypedResourceBuilder.Create( "MyClass.resx","MyClass","my.namespace",codeProvider,true,out unmatchedElements); // Needs System.Design.dll using(StreamWriter writer = new StreamWriter("MyClass.Designer.cs",false,System.Text.Encoding.UTF8)) { codeProvider.GenerateCodeFromCompileUnit(code,writer,new System.CodeDom.Compiler.CodeGeneratorOptions()); } // Returns false if at least one ppty couldn't be generated. return unmatchedElements.Length == 0;