【问题标题】:GenerateResource Task generates code for wrong C# VersionGenerateResource 任务为错误的 C# 版本生成代码
【发布时间】:2016-09-06 14:39:45
【问题描述】:

我有一个生成资源文件 (.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" 生成的。

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

【问题讨论】:

  • 对于所有有同样问题的人。我目前的解决方法是基于this 问题。在生成代码后,我只是将不工作的调用替换为工作调用。丑陋。

标签: c# msbuild portable-class-library


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-04-26
    • 2010-09-06
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    相关资源
    最近更新 更多