Я испортил мой установщик на основе WiX на нескольких серверах, чтобы он не удалял файлы или компоненты (или даже другие функции) во время удаления. Журнал MSI показывает, что PreviouslyPinned = 1 для всех компонентов, которые не будут удалены.Удалить компонент GUID = ", установленный с помощью WiX
У меня нет ничего интересного, как использование SharedDll или даже разделяемых компонентов среди разных инсталляторов.
Я думаю, что я отследил его до конкретной версии моего WiX-кода. Я сделал пару глупых вещей. Я (неумышленно) создал неуправляемый компонент с пустым Guid
<Component Id="file.ext" Guid="">
<File .../>
<Component>
и я также изменил местоположение файла другого компонента и Id (но не это Guid). Все компоненты, присутствующие в более ранних версиях, показывают, что PreviouslyPinned = 1 и не будут удалены, а новые компоненты добавлены после правильной установки и удаления этой версии.
Как я могу вернуть своего установщика в нормальное состояние и удалить эти ранее закрепленные компоненты?
Я слышал, что вы говорите, что, поскольку пустой GUID даже не регистрирует компонент, он не должен влиять на другие компоненты. Это правильно? –
Да, в общем случае пустой GUID не должен влиять на другие компоненты, поскольку MSI игнорирует его после установки файла. Однако редко факт без изменений: файл, установленный пустым GUID, не будет удалён. Если это файл с версией и вы не меняете место установки, прежде чем добавлять назад guid, теоретически возможно, что существующий файл может заблокировать установку новой версии файла (если существующий файл является более высокой версией). Есть также несколько других маловероятных сценариев, если вы используете незначительные обновления, но если вы не используете это, я не буду вдаваться в него. –
Спасибо за подробный ответ! В конце концов, чтобы все остальное было неустановочно удалено (удалив предыдущие 1) из журнала MSI, мне пришлось войти в реестр на этом ПК и удалить все компоненты из моего установщика под HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ UserData \ \ Компоненты на основе подсказки Я нашел здесь http://blogs.msdn.com/icumove/archive/2008/06/17/windows-installer-error-2908-with-sub-errors- 1402-and-1450.aspx –