Сетевой ресурс, недоступный или ввод альтернативного пути

Похоже на исходный вопрос относительно , почему это недопустимо, было ясно дано ответ: «потому что это скорее всего ошибка».

FWIW, я думал, d показать , как это сделать , хотя я не думаю, что это хорошая техника.

Причина, по которой я иногда хочу передать временный метод, -конференция состоит в том, чтобы умышленно отбросить значение, возвращаемое ссылкой, что вызывающий метод не заботится. Что-то вроде этого:

// Assuming: void Person::GetNameAndAddr(std::string &name, std::string &addr);
string name;
person.GetNameAndAddr(name, string()); // don't care about addr

Как объяснялось в предыдущих ответах, это не компилируется. Но это компилируется и работает корректно (с моим компилятором):

person.GetNameAndAddr(name,
    const_cast<string &>(static_cast<const string &>(string())));

Это просто показывает, что вы можете использовать кастинг, чтобы лгать компилятору. Очевидно, было бы намного проще объявить и передать неиспользуемую автоматическую переменную:

string name;
string unused;
person.GetNameAndAddr(name, unused); // don't care about addr

Этот метод вводит ненужную локальную переменную в область действия метода. Если по какой-то причине вы хотите предотвратить его использование позднее в методе, например, чтобы избежать путаницы или ошибки, вы можете скрыть его в локальном блоке:

string name;
{
    string unused;
    person.GetNameAndAddr(name, unused); // don't care about addr
}

- Chris

0
задан Mohan 13 July 2018 в 10:15
поделиться

1 ответ

Проблемы с самовосстановлением : это, как правило, проблема самовосстановления. Я написал больше раз об этом, чем мне хотелось бы посчитать, я посмотрю, могу ли я отправить вас сюда: MSI self-repair - the scourge of society .

Пояснение : На самом деле происходит то, что ваша установка проходит проверку целостности при запуске через объявленный ярлык , и обнаружен недостаток ресурса. Затем MSI попытается восстановить себя (самовосстановление), но не может найти требуемые исходные файлы для извлечения файла, который необходимо переустановить, поскольку исходные файлы больше не доступны в том месте, где вы были установлены. Рекомендуется установить из постоянно доступного сетевого местоположения с помощью административных установок - особенно для корпораций.

Отсутствующие исходные файлы Разрешение : В вашем случае - для сортировки отсутствующих исходных файлов - вы можете либо удалить, либо переустановить (в обычных случаях удаление не должно быть доступа к источнику), а затем сохранить файлы установки в постоянно доступном месте (решение проблемы на будущее) или вы можете перейдите к источнику установки, когда вам будет предложено сделать это для вашей текущей установки (и есть несколько способов автоматизировать установку новых путей источника). Источник установки должен быть тем, который использовался для первоначальной установки программного обеспечения (если только вы не знаете, как его взломать, что очень важно).

Саморемонтное разрешение : для сортировки фактический конфликт самовосстановления, вам, по сути, нужно найти виновного компонента, вызывающего ремонт в средстве просмотра событий, а затем найти какой-то способ решить ситуацию. Все связанные или объясненные в приведенном выше ответе ( повторяются здесь ). Предлагаемые «решения в реальном мире» можно найти в разделе 5 здесь: Что мне делать при запуске приложения триггеров, повторяющих бесконечный самообучающийся установщик Windows? В качестве обходного пути вы можете попытаться запустите непосредственно файлы EXE, чтобы убедиться, что самовосстановление не произойдет (обычно это предотвратит самовосстановление, но это может произойти, если есть конфликт COM или какой-либо другой конфликт).

В этом ответе вы можете увидеть список « Primary Cause of Self-Repair ». Как определить, что вызывает повторный автозапуск установщика Windows? (плохие пакеты MSI с конфликтующими ресурсами - COM-конфликты?), программное обеспечение безопасности, помещающее в карантин файлы неожиданно, очистка скриптов, разрушающих хаос и т. д.). Я рекомендую вам просмотреть этот список для идей.


Проблемы с удалением : Эта проблема с установкой не найдена, так что она предотвращает удаление в особых случаях. Вот ответ, который пытается обобщить аспекты этой проблемы: Powershell Silent Uninstall & quot; Microsoft Report Viewer Runtime 2012 & quot; (несколько слишком сложный, но, как мне кажется, стоит скрыть).


Некоторые ссылки (для справочного и простого извлечения):

0
ответ дан Stein Åsmul 17 August 2018 в 13:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: