Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Msbuild 自定义.targets文件不工作_Msbuild - Fatal编程技术网

Msbuild 自定义.targets文件不工作

Msbuild 自定义.targets文件不工作,msbuild,Msbuild,我创建了一个自定义的.targets文件,如下所示(只是将myproj.vcxproj文件中需要的所有常见任务添加到了.targets文件中) 所有宏/数组(如S_PACK_H1、D_PACK_H11)都在myproj.vcxproj文件中定义,然后我将其导入myproj.vcxproj文件,如下所示 <Import Project="C:\Program Files\MSBuild\MyCompany\Mycustom.targets" /> 当我使用下面的命令时 m

我创建了一个自定义的.targets文件,如下所示(只是将myproj.vcxproj文件中需要的所有常见任务添加到了.targets文件中)


所有宏/数组(如S_PACK_H1、D_PACK_H11)都在myproj.vcxproj文件中定义,然后我将其导入myproj.vcxproj文件,如下所示

  <Import Project="C:\Program Files\MSBuild\MyCompany\Mycustom.targets" />

当我使用下面的命令时

msbuild myproj.vcxproj/t:H11

它给出了一个错误“错误MSB4057:项目中不存在目标“H11”

但如果我在.vcxproj文件而不是.targets文件中有相同的任务列表,那么它就可以正常工作

  • 我可以在.vcxproj文件中定义宏并在.targets文件中使用它们吗?MSBuild能否获取该定义/值?如果没有,那么如何在.targets文件中使用/传递vxcproj文件中定义的内容

  • 为什么msbuild在.targets文件和.proj文件中时无法看到我的任务?我还需要做什么


  • 没有明显的理由不这样做。是的,您可以在导入的文件中定义目标,并且无论导入发生在何处,目标都应可用。如果您使用的是MSBuild 4.0(上面的.targets文件中没有ToolsVersion属性,因此我不确定),那么您可以生成一个完全预处理的文件,如下所示:

    > msbuild mproj.vcxproj /pp
    
    在同一文件夹中查找预处理的文件。在文本编辑器中打开它并搜索导入的内容,它应该都在那里。如果没有,预处理的文件可能会揭示出问题所在

    > msbuild mproj.vcxproj /pp