2016-06-03 3 views
2

instructions here에 따라 인식, 나는 다음과 같은 오류 얻을 다음 .csproj 파일에서요소 <Target>의 속성 "이름"

The attribute "Name" in element is unrecognized

을, 나는 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> 

새로 게시 된 SmartClient 응용 프로그램을 실행할 때 "파일에 매니페스트에 지정된 것보다 다른 계산 된 해시가 있습니다."오류가 발생합니다. 뭐가 잘못 되었 니?

+1

재생할 수 없습니다. 표시되는 대상이 좋으므로 오류의 원인은 다른 곳에서 발생합니다. – stijn

+0

VS 2015를 사용하고 있습니까? 윈도우 10? –

+3

어느 쪽도 아니지만 그건 중요하지 않습니다. '대체 된 postbuild'라고 말하면서 질문을 다시 읽으면 문제가 있음을 알았습니다 : PropertyGroup 내부에 표시 할 대상을 배치 했습니까? Thta는 작동 방식이 아닙니다. 프로젝트 레벨에서 정의해야합니다. – stijn

답변

5

csproj에 삽입 된 기본 PostBuildEvent는 PropertyGroup의 속성으로 정의되며 해당 속성 그룹 내에 대상 코드를 붙여 넣은 것 같습니다. 속성에 원하는 효과가 없을뿐만 아니라 속성에 Name 속성이 없으므로 프로젝트 파일을로드하는 중에 오류가 발생합니다. 따라서 잘못된 XML이 있습니다. 해결책 : 타겟을 프로젝트 레벨에 놓으면 빌드 할 때 CoreCompile 이후에 연결되기 전에 자동으로 호출되므로 '빌드 후 이벤트'를 정의하는 방식이므로 혼란이 발생합니다.