Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Никакая потребность отредактировать файл вручную. Подсказка чуть выше GUID там: "LaunchCondition".
Я не уверен, почему это не установлено соответственно от запуска.
Даже при предназначении для 2,0 развертывания некоторые блоки могли бы потребовать 3.5. Например, LINQ требует 3.0. Это должно, однако, быть отражено, когда Вы создаете. Проверьте каждый блок, чтобы гарантировать, что это - 2,0 совместимых. Вы не хотите 3,5 вещей, крадущихся в. Если это верно, мое предположение было бы сторонней библиотекой программ управления с поддержкой WPF.
Я всегда использовал Innosetup для развертывания моих проектов. Это очень быстро, и очень настраиваемо. Нет почти ничего, что Вы не можете сделать с небольшим количеством сценариев. Innosetup может обнаружить, какая версия Платформы установлена, и предложите пользователю, если правильная версия не присутствует (со сценариями).
Я рекомендую, чтобы Вы попробовали альтернативные инструменты развертывания как Innosetup и видели, нравятся ли Вам они. Существует богатство возможности там.
Я в конечном счете нашел ответ на свой собственный вопрос.
При сравнении файлов проектов с помощью Блокнота, я заметил, что проект установки в VS2008 имеет запись, которая запрашивает, версия 3.5 и тот же раздел в проекте VS2005 были отмечены как 2,0. То, что является странным, - то, что раздел похож на что-то, что Вы не можете вручную изменить в среде Visual Studio и таким образом, Вы вынуждены обновить файл проекта вручную. Где угодно вот незаконная область файла проекта для тех, который сталкивается с той же проблемой...
"Deployable"
{
"CustomAction"
{
}
"DefaultFeature"
{
"Name" = "8:DefaultFeature"
"Title" = "8:"
"Description" = "8:"
}
"ExternalPersistence"
{
"LaunchCondition"
{
"{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_FC497D835F7243569DCCC3E3ACE4196D"
{
"Name" = "8:.NET Framework"
"Message" = "8:[VSDNETMSG]"
"Version" = "8:3.5.30729" <--- UPDATE THIS TO 8:2.0.50727
"AllowLaterVersions" = "11:FALSE"
"InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=76617"
}
}
}