GenerateResource Task为错误的C#版本生成代码

时间:2016-09-06 14:39:45

标签: c# msbuild portable-class-library

我有一个生成资源文件(.resx)的工具。为了更新c#-Design文件,我需要为.resx-Files运行“运行自定义命令”。

为了实现自动化,我将GenerateResource任务添加到构建文件中。这会在每次编译之前生成c#文件。

使用GenerateResource生成的代码包括以下内容:typeof(Default).Assembly。当我运行自定义工具命令时,此部分为:typeof(Default).GetTypeInfo().Assembly

资源文件是PCL项目的一部分,其中Type类型不包含属性Assembly。

代码表示它是使用"System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0"生成的,但应该使用"System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"生成。

有没有办法指定任务应该使用的版本?或者自动生成这些源文件的另一种方法,而不依赖于插件?

1 个答案:

答案 0 :(得分:0)

我遇到同样的情况,需要调整GenerateResource以使用所需版本的SDK工具resgen.exe。 GenerateResource任务具有属性SdkToolsPath,通过将其设置为例如$(TargetFrameworkSDKToolsDirectory)可能对您有帮助。