Msbuild 为什么我的自定义CodeTaskFactory任务在Visual Studio 2013中失败,但可以从命令行工作?

Msbuild 为什么我的自定义CodeTaskFactory任务在Visual Studio 2013中失败,但可以从命令行工作?,msbuild,visual-studio-2013,Msbuild,Visual Studio 2013,我已按照中的指南将以下自定义任务添加到项目文件中: 你知道为什么会这样吗 从输出中可以看到,我已经将MSBuild的输出转换为诊断级别,但这并没有提供任何进一步的线索。我还尝试使用MSBuildToolsVersion,以确保它引用的是正确的版本(v12.0) 据我所知,这些问题应该已经成为过去。我整个上午都在努力使用Google来找到这个特定问题的答案,但这似乎不是一个非常常见的错误消息,现在我被难住了。看看您正在遵循的指南,您会注意到您的XML缺少该指南中提供的某些属性: 更新此: &l

我已按照中的指南将以下自定义任务添加到项目文件中:

你知道为什么会这样吗

从输出中可以看到,我已经将MSBuild的输出转换为诊断级别,但这并没有提供任何进一步的线索。我还尝试使用MSBuildToolsVersion,以确保它引用的是正确的版本(v12.0)


据我所知,这些问题应该已经成为过去。我整个上午都在努力使用Google来找到这个特定问题的答案,但这似乎不是一个非常常见的错误消息,现在我被难住了。

看看您正在遵循的指南,您会注意到您的XML缺少该指南中提供的某些属性:

更新此:

  <ParameterGroup>
    <Name />
    <Value />
  </ParameterGroup>

全文如下:

  <ParameterGroup>
    <Name ParameterType="System.String" Required="true" />
    <Value ParameterType="System.String" Required="true" />
  </ParameterGroup>


我在编辑包含任务的目标文件时遇到了同样的问题,因此我的情况可能会有所不同。但是重新启动VS解决了这个问题,我猜我正在编辑的目标正在被缓存,因此没有看到我的更改。

抱歉。即使有这些属性,它仍然失败。是否可以重现此问题,或者它是否对您正常工作?是否可以打印出$(MSBuildToolsPath)的值,以查看它们是否在VS中使用相同的值?很有趣。我没有考虑潜在的缓存问题。
  <ParameterGroup>
    <Name />
    <Value />
  </ParameterGroup>
  <ParameterGroup>
    <Name ParameterType="System.String" Required="true" />
    <Value ParameterType="System.String" Required="true" />
  </ParameterGroup>