【发布时间】:2017-06-28 19:18:41
【问题描述】:
我正在通过命令行在客户配置上运行 MSBuild(例如您在 Visual Studio 中看到的调试、发布,但我使用的是我自己的配置)。
MSBuild build.msbuild /p:Configuration=Dev ...blahC:\myproject\packages\PostSharp.4.3.9-alpha\tools\PostSharp.targets(422,5): 错误 MSB4036:未找到“GenerateBindingRedirects”任务。 检查以下内容: 1.) 项目文件中的任务名称是 与任务类的名称相同。 2.) 任务类是 “public”并实现 Microsoft.Build.Framework.ITask 接口。 3.) 任务在项目文件中正确声明,或者在位于 “C:\windows\Microsoft.NET\Framework64\v4.0.30319”目录。 [路径到 我的项目文件]
这通常可以正常工作,但是当我使用 postsharp 时,它会抛出一个错误,如您在上面看到的。当我将 /p:Configuration 中的 Dev 替换为 Debug 或 Release 时,它们工作正常。
我检查了 .csproj,Release 没有添加任何特别的东西,这不在我的开发配置中。 我应该怎么做才能解决这个问题?我尝试将 postsharp 包目录的内容复制到 bin\Dev 文件夹中,但仍然无法找到任务。
【问题讨论】:
-
该错误可能表明
<UsingTask>元素在配置之间的评估方式不同。我建议为有问题的项目区分预处理的 MSBuild 项目——也就是说,比较msbuild /pp:debug.proj path\to\project.csproj /p:Configuration=Debug和msbuild /pp:Dev.proj path\to\project.csproj /p:Configuration=Dev的输出 -
我实际上无法运行它。我有工具集 12,它似乎不支持该 pp 标志。
-
你知道这是一年前的 alpha 版本吗?您是否尝试过升级软件包?
-
@DanielBalas 你指的是 MSBuild 还是 Postsharp?
-
@arviman PostSharp