У меня есть старое приложение C++, в которое я недавно добавил поддержку CLR. Это было сделано для того, чтобы я мог использовать mage.exe для создания файлов манифеста, необходимых для создания приложения как приложения ClickOnce. После некоторой разочаровывающей работы я смог создать файлы манифеста.
Теперь я хочу создать файл setup.exe, аналогичный тому, что вы получите, если воспользуетесь опцией публикации в проекте C#. Файл будет проверять наличие необходимых компонентов .NET Framework 4.0, установщика Windows 3.1 и распространяемого компонента Visual C++ 2010 x86 и при необходимости устанавливать их.
Я пытался использовать генератор манифестов Bootstrapper, но я не уверен, как заставить его проверять и устанавливать все 3 предварительных условия и запускать файл ClickOnce .application, который у меня есть. Документация по продукту немного фрагментарна.
Я также безуспешно пытался использовать msbuild /target:publish, чтобы имитировать опцию публикации, которую вы увидите в проекте C#.
Я даже пытался отредактировать файл .vcxproj, включив в него BootstrapperFile (как показано здесь: http://msdn.microsoft.com/en-us/library/ms164294.aspx и CustomAction завершается успешно на компьютере разработки, завершается ошибкой на компьютере развертывания) безрезультатно.
Можно ли добавить некоторую зависимость в манифест моего приложения (myapp.exe.manifest), аналогичную тому, как CLR устанавливается в качестве предварительного требования?
<dependency>
<dependentAssembly dependencyType="preRequisite" allowDelayedBinding="true">
<assemblyIdentity name="Microsoft.Windows.CommonLanguageRuntime" version="4.0.30319.0" />
</dependentAssembly>
</dependency>
Итак, может ли кто-нибудь дать какие-либо рекомендации относительно того, как я могу создать установочный пакет, который проверяет наличие предварительных условий, упомянутых выше, при необходимости устанавливает, а затем запускает мой файл ClickOnce .application? Я думаю, что сложность здесь в том, что это приложение C++ CLI Clickonce, и нет поддержки IDE для создания пакета установки.