我将详细阐述简化翻译工具的解决方案。因此,我目前尝试从我的代码中自动编译卫星程序集。
所以我想要实现的是替换手动运行以下命令:
AL.exe /culture:de /out:de\TestResource.resources.dll /embed:TestResource.de.resources
到目前为止,我已经测试过生成一个 .dll 文件,该文件有效。但是嵌入/链接如下所示的资源没有任何效果,但会扩大 dll 的大小。所以很明显它在那里但不能使用,就好像生成的 dll 是卫星程序集一样。
static void Main(string[] args)
{
CSharpCodeProvider codeProvider = new CSharpCodeProvider();
CompilerParameters parameters = new CompilerParameters();
parameters.GenerateExecutable = false;
parameters.OutputAssembly = "./output/satellite_test.dll";
parameters.EmbeddedResources.Add(@"./TestResource.en.resources");
parameters.LinkedResources.Add(@"./TestResource.de.resources");
CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, "");
}
有没有办法以编程方式生成一个只包含一种语言的本地化资源的 dll,以便它可以用作卫星程序集?