属性&#34;名称&#34;元素<target>中的元素无法识别

时间:2016-06-03 16:57:04

标签: xml visual-studio-2015 msbuild certificate clickonce

关注instructions here,我收到以下错误:

  

属性&#34;名称&#34;元素中的元素无法识别

在.csproj文件中,我删除了PostBuild部分并将其替换为:

<Target Name="SignOutput" AfterTargets="CoreCompile">
<Exec Command="&quot;C:\Program Files (x86)\Windows Kits\10\bin\x64\signtool.exe&quot; sign /f &quot;$(ProjectDir)My_Cert.pfx&quot; /p mypassword &quot;$(ProjectDir)obj\$(ConfigurationName)\MyExe.exe&quot;" />
</Target>

我之所以这样做,是因为我得到的“文件的计算哈希值与清单中指定的不同;#34;错误&#34;尝试运行新发布的SmartClient应用程序时。有什么问题?

1 个答案:

答案 0 :(得分:7)

在csproj中插入的默认PostBuildEvent被定义为PropertyGroup中的Property,似乎您在该propertyGroup中粘贴了Target的代码。这不仅没有产生预期效果,甚至在加载项目文件时出错,因为属性没有Name属性,因此你有一些格式错误的xml。 解决方案:只需将Target置于项目级别,它将在构建时自动调用,在CoreCompile之后但在链接之前等,因此它也是一种定义“构建后事件”的方式,因此会产生混淆。