Я пытаюсь создать проект установки для службы Windows.Я следовал указаниям http://support.microsoft.com/kb/816169, чтобы создать проект установки без проблем.
Я хочу иметь возможность получить значение во время установки, чтобы обновить app.config желаемыми настройками пользователя.Я добавил диалог Textboxes (A) для получения значений.Я установил для свойства Edit1Property значение «TIMETORUN», а в свойстве основного действия « CustomActionData » я добавил следующее: / TimeToRun = "[TIMETORUN] \" .Все идет нормально.Запустив установку, я могу получить значение TimeToRun из коллекции Context.Parameters без проблем.
Чтобы найти файл app.config, мне также необходимо передатьзначение свойства установщика Windows TARGETDIR для моего настраиваемого действия.Здесь вещи начинают разваливаться.Для этого необходимо изменить CustomActionData следующим образом: / TimeToRun = "[TIMETORUN] \" / TargetDir = "[TARGETDIR] \" .Теперь, когда я запускаю установку, я получаю следующее сообщение об ошибке:
Ошибка 1001. Исключительная ситуация при инициализации установки.System.IO.FileNotFoundException: Не удалось загрузить файл или сборку 'file: /// C: \ Windows \ SysWOW64 \ Files' или одну из ее зависимостей.Системе не удается найти указанный файл.
Если вы решите эту проблему в Google, вы неизбежно найдете людей с огромным успехом, просто добавив косую черту в / TargetDir = "[TARGETDIR] \" часть CustomActionData .К сожалению, это не решает мою проблему.
Я пробовал так много разных вариантов строки CustomActionData , и ни один из них не работал.Я попытался войти в файл из моего переопределенного метода Install , чтобы определить, где произошла поломка, но файл журнала не создается, потому что он даже не зашел так далеко.Как указывает на ошибку, ошибка происходит на этапе инициализации.
Я догадываюсь, что это может быть одной из зависимостей, которые пытается загрузить проект установки.Возможно, что-то добавляется к строке CustomActionData и плохо воспроизводится со значением TARGETDIR (которое содержит пробелы, например "C: \ Program Files \ My Company \ Project Name"«).Опять же, это еще одна догадка, которую я не могу подтвердить из-за своей неспособности отладить процесс установки.
Еще одна вещь, которую стоит упомянуть, и да, это еще одна догадка, может ли это быть проблемой с установочными проектами на 64версия Windows?Я использую Windows 7 Professional.
Я предоставлю имена зависимостей, если это поможет:
- Microsoft .NET Framework
- Microsoft.SqlServer.DtsMsg.dll
- Microsoft.SqlServer.DTSPipelineWrap.dll
- Microsoft.SqlServer.DTSRuntimeWrap.dll
- Microsoft.SQLServer.ManagedDTS.dll
- Microsoft.SqlServer.msxml6_interop.dll
- Microsoft.SqlServer.PipelineHost.dll
- Microsoft.SqlServer.SqlTDiagM.dll
Как вы можете узнать из зависимостей WindowsСлужба планирует вызов в пакет DTSX.
Извините за длинную напыщенную речь.Спасибо за любую помощь, вы можете предоставить.