Установщик MSI, 64-разрядная ОС, запись в папку \ windows \ system32 \ inetsrv - PullRequest
3 голосов
/ 28 августа 2009

В 64-разрядной версии Windows Server 2008 мне нужен установочный файл MSI для записи некоторых файлов в папку \ windows \ system32 \ inetsrv. (Эти файлы представляют собой некоторые файлы проверки XML-схемы, которые C # XmlReaderSettings.Schema.Add () ожидает в этой папке).

При запуске установщика файлы оказываются в папке \ windows \ SysWOW64 \ inetsrv, а не там, где они должны быть.

Я попытался заставить программу установки записать в папку \ windows \ Sysnative, и программа установки создала папку с таким точным именем, что я не ожидал, что это будет возможно. См. эту страницу для хорошего обсуждения по подавлению перенаправления SysWOW64.

Как получить MSI для записи моих файлов в папку \ windows \ system32 \ inetsrv в 64-разрядной версии Windows 2008?

Ответы [ 3 ]

2 голосов
/ 28 августа 2009

Вот свойства системной папки , которые вы можете использовать. Я знаю, что это нелогично, но вы пробовали System64Folder ? Прочитайте замечания.

Если это не сработает, попробуйте добавить System32 до конца WindowsFolder .

Edit-1: попробуйте установить атрибут Win64 в элементе Component и посмотреть, изменяется ли поведение перенаправления.

1 голос
/ 04 октября 2011

Я попытался использовать Sysnative в файле wxs, но получил тот же результат: создать папку Sysnative под Windows вместо использования System32. Поэтому я использовал Sysnative в CA vbscript: нашел папку Windows (& H24 &) и добавил \ Sysnative. Это работает, но для удаления файлов во время удаления необходим второй ЦС.

0 голосов
/ 17 сентября 2009

Я решил свою проблему, записав файлы в \ windows, а не в \ windows \ system32. Оказывается, что C # XmlReaderSettings.Schema.Add () будет работать с полным путем в каталоге \ windows. По умолчанию используется папка system32, если указанный путь указан не полностью.

Это не совсем ответ на вопрос, но это обходной путь для моих неотложных потребностей.

...