Если вы не инициализировали ссылочный тип и хотите установить или прочитать одно из его свойств, он будет генерировать исключение NullReferenceException.
Пример:
Person p = null;
p.Name = "Harry"; // NullReferenceException occurs here.
Вы можно просто избежать этого, проверив, является ли переменная не нулевой:
Person p = null;
if (p!=null)
{
p.Name = "Harry"; // Not going to run to this point
}
Чтобы полностью понять, почему выбрано исключение NullReferenceException, важно знать разницу между типами значений и ссылочные типы .
Итак, если вы имеете дело со типами значений, NullReferenceExceptions не может произойти. Хотя вам нужно поддерживать оповещение при работе со ссылочными типами!
Только ссылочные типы, как следует из названия, могут содержать ссылки или буквально буквально ничто (или «нуль»). Если типы значений всегда содержат значение.
Типы ссылок (эти должны быть проверены):
Типы значений (вы можете просто игнорировать эти):
Теперь попробуйте опубликовать приложение ClickOnce. Если вы все еще находите ту же проблему, проверьте, установлен ли в системе предварительный просмотр Microsoft .NET Framework 4.5 Developer. Предварительный просмотр разработчика Microsoft .NET Framework 4.5 представляет собой предварительную версию .NET Framework и не должен использоваться в производственных сценариях. Это обновление на месте .NET Framework 4. На месте этого продукта необходимо удалить этот продукт из ARP.
Наконец, вы можете захотеть установить предварительный просмотр клиента, а не на предварительный просмотр разработчика
Инструменты публикации ClickOnce не установлены как часть Типовых параметров установки. Поэтому вы должны установить его в расширенном режиме.
Это диалоговое окно можно найти в Windows 7, выбрав Панель управления> Удалить программу , щелкнув правой кнопкой мыши на Microsoft Visual Studio Professional 2015 и выбрав Change
. Откроется диалоговое окно Visual Studio. Выберите Modify
из набора кнопок внизу, и появится диалоговое окно.
Повторная установка SDK не помогла мне, но установила SDK + .NET 3.5 из приведенной ниже ссылки: https://www.microsoft.com/en-us/download/details.aspx?id=3138
У меня была аналогичная проблема. По какой-то причине в свойствах проекта -> Signing -> Sign ClickOnce манифеста была включена.
Я снял флажок, и проблема исчезла.
Нажмите «Применить» -> «Свойства» -> «Подписать» -> «Непроверено». Подпишите манифест ClickOnce.
Проблема будет решена.
Примечание. Помните, что это решение удаляет безопасность из вашего проекта. Перед тем, как сделать это, обратитесь за помощью к более узнаваемому коллеге.
SignTool перемещается в другое место в последнем SDK: C:\Program Files (x86)\Windows Kits\8.1\bin\x86
Необходимо установить инструменты публикации ClickOnce во время установки Visual Studio 2015.
Вы можете повторно запустить установку из раздела «Программы и функции»; найдите Visual Studio в списке и нажмите «Изменить».
Ни один из приведенных выше ответов не говорит о отключении ClickOnce. В моей ситуации я никогда не использовал ClickOnce для своих приложений, но после того, как я обновился до VS 2015, он внезапно включился, и я попытался скомпилировать ошибку «SignTool.exe not found».
Чтобы отключить вас, войдите в свойства вашего проекта (щелкните правой кнопкой мыши) и выберите Безопасность | Снимите флажок Включить настройки безопасности ClickOnce .
Вы можете оставить манифест, отмеченный на вкладке «Подписание», потому что ему нечего подписывать, если он отключен.
Я подтвердил, что снятие блокировки безопасности разрешило ошибку компиляции в моих проектах.
Это простое исправление. Откройте проект, на который вы получаете эту ошибку. Нажмите «Проект» вверху. Затем нажмите «Свойства» (будет именем открытого проекта), затем нажмите «Безопасность», затем снимите флажок «Включить параметры безопасности ClickOnce».
Это должно исправить все.
Мне нужно Подпись, поэтому не удалось проверить, как было предложено.
Затем перейдите в Панель управления -> Программы и компоненты -> Microsoft Visual Studio 2015 Нажмите «Изменить», затем установщик загрузится, и вам нужно щелкнуть Измените, чтобы добавить функцию ClickOnce Publishing Tools.
Нажмите «Проект» вверху. Затем нажмите «Свойства» -> Подписать -> Отменить флажок [Подписать манифест ClickOnce] теперь работает
Вы можете исправить это, нажав на установочное приложение VS. Затем нажмите «Изменить»> «Отметить приложение ClickOnce», а затем обновите VS. Также я думаю, что @Alex Erygin прав. Это плохое решение для Нажмите «Применить» -> «Свойства» -> «Подписать» -> «Снимите флажок». Выполните манифест ClickOnce. Это не решение. Он только обошел эту проблему.