Hi Xiaoming,
This problem is caused by a cross-version issue between your dev machine and the grid node.
Basically, your dev machine is building the project using the VS2015 build tools, while the grid node is using an older set of tools.
NCrunch will normally use the same set of build tools on a grid node as it does on the client machine. Where it can't resolve the same tools, it will use an older version as a fallback.
Can you check if you have the file 'Microsoft.Build, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL' installed in the GAC on the grid node server? NCrunch looks for this assembly when deciding whether it can use MSBuild for VS2015.
A way to work around this is to try adding the missing build target directly to your project files. For example:
<Target Name="AssignLinkMetadata" Condition="'$(NCrunch)' == '1'">
</Target>
This may get you past the problem, though it may cause some differences in behaviour around how Link files are copied for the project (usually not a problem as most people don't use this feature).