Для моего проекта я хочу добавить к нему установщик WiX. Установщик устанавливает веб-приложение Typescript в IIS, которое работает. Но он поставляется с конфигурацией по умолчанию, которую я не хочу использовать в производственной среде, поскольку она зависит от среды. Я добавил экран в пользовательский интерфейс WiX, чтобы ввести детали и все остальное. Но поскольку конфигурация представляет собой файл JSON, мне нужно было создать WixExtension, который обновляет файл.
Я начал с консольного приложения, которое гарантировало его работу и предоставило достойную обратную связь, а затем преобразовал его в WiXExtension. Поскольку у меня есть доступ только к VS Code и ядру tnet, я создал все в ядре do tnet. Но при добавлении файла в свечу я получаю ошибку, что свеча не может найти System.Runtime. Установлен полный SDK do tnet core. Что я делаю не так?
Команда, которую я использую для свечи: "%wix%bin\candle" *.wxs -o obj\ -nologo -ext WixIIsExtension -ext WiXUIExtension -ext TextReplacerWixExtension.dll -ddistFolder="..\ClientApp\dist"
Ошибка, которую я получаю от Candle:
candle.exe : error CNDL0001 : Could not load file or assembly 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
Exception Type: System.IO.FileNotFoundException
Stack Trace:
at System.ModuleHandle.ResolveType(RuntimeModule module, Int32 typeToken, IntPtr* typeInstArgs, Int32 typeInstCount, IntPtr* methodInstArgs, Int32 methodInstCount, ObjectHandleOnStack type)
at System.ModuleHandle.ResolveTypeHandleInternal(RuntimeModule module, Int32 typeToken, RuntimeTypeHandle[] typeInstantiationContext, RuntimeTypeHandle[] methodInstantiationContext)
at System.Reflection.RuntimeModule.ResolveType(Int32 metadataToken, Type[] genericTypeArguments, Type[] genericMethodArguments)
Inheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters, Boolean& isVarArg)
at System.Reflection.CustomAttribute.FilterCustomAttributeRecord(CustomAttributeRecord caRecord, MetadataImport scope, Assembly& lastAptcaOkAssembly, RuntimeModule decoratedModule, MetadataToken decoratedToken, RuntimeType attributeFilterType, Boolean mustBeInheritable, Object[] attributes, IList derivedAttributes, RuntimeType& attributeType, IRuntimeMethodInfo& ctor, Boolean& ctorHasParameters, Boolean& isVarArg)
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeModule decoratedModule, Int32 decoratedMetadataToken, Int32 pcaCount, RuntimeType attributeFilterType, Boolean mustBeInheritable, IList derivedAttributes, Boolean isDecoratedTargetSecurityTransparent)
at System.Reflection.CustomAttribute.GetCustomAttributes(RuntimeAssembly assembly, RuntimeType caType)
at System.Reflection.RuntimeAssembly.GetCustomAttributes(Type attributeType, Boolean inherit)
at System.Attribute.GetCustomAttributes(Assembly element, Type attributeType, Boolean inherit)
at System.Attribute.GetCustomAttribute(Assembly element, Type attributeType, Boolean inherit)
at Microsoft.Tools.WindowsInstallerXml.WixExtension.Load(String extension)
at Microsoft.Tools.WindowsInstallerXml.Tools.Candle.Run(String[] args)
Что мне не хватает? Могу ли я даже создать WixExtension в ядре do tnet? WixExtension строится без каких-либо проблем. Я еще не добавил код в файл .wxs, он уже вылетает при добавлении его в компоновщик. Я просмотрел это руководство , чтобы создать расширение.