2016-06-03 2 views
2

После instructions here, я получаю следующее сообщение об ошибке:Атрибут «Name» в элементе <Target> нераспознан

The attribute "Name" in element is unrecognized

В файле .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> 

Я делаю это, потому что получаю «Файл имеет другой вычисленный хэш, чем указано в манифестной ошибке при попытке запустить недавно опубликованное приложение SmartClient. Что не так?

+1

Невозможно воспроизвести, цель, которую вы показываете, прекрасна, так что причина ошибки в другом месте – stijn

+0

Вы используете VS 2015? Windows 10? –

+3

Ничего, но это не имеет значения. Повторяя ваш вопрос, хотя, где вы говорите «заменил постбайлд», я думаю, что нашел проблему: возможно, вы разместили цель, которую вы показываете внутри PropertyGroup? Thta не так, как он работает: он должен быть определен на уровне проекта – stijn

ответ

5

По умолчанию PostBuildEvent, вставленный в csproj, определяется как свойство в PropertyGroup, и кажется, что вы вставили код для цели внутри этой группы свойств. Это не только не имеет желаемого эффекта, но даже дает ошибки загрузки файла проекта, поскольку свойства не имеют атрибута Name, поэтому у вас есть некорректный xml. Резолюция: просто поставьте Target на уровне проекта, и он будет автоматически вызван при создании после CoreCompile, но до привязки и т. Д., Поэтому это также способ определения события post post, следовательно, путаницы.

 Смежные вопросы

  • Нет связанных вопросов^_^