Пользовательское действие вернуло фактический код ошибки 1154 при использовании Wise Installer Studio 7.0
Прежде всего, это очень похоже на проблему, решаемую в C#. Пользовательское действие, используемое через WiX, завершается с ошибкой 1154
Однако я не смог распознать конкретные шаги для решения проблемы в моей ситуации. Надеюсь, кто-то может указать мне в правильном направлении.
В моем случае я использую Wise Installation Studio 7.0 для выполнения настраиваемого действия C#, которое я написал для запуска компонента Server Manager для.Net Framework 3.5 с пакетом обновления 1 (SP1) на Server 2008 R2 и новее.
Я создал пользовательское действие в Visual Studio 2010 как стандартную библиотеку классов.Net 2.0.
Я предполагаю, что мне нужно сделать что-то другое здесь - что это должно быть скомпилировано как нечто, чем управляемая DLL. Код, который я использую, довольно прост... взят с форумов flexera, где кто-то другой опубликовал решение проблемы.Net Framework 3.5 SP1 на Server 2008 R2.
using System;
using System.Diagnostics;
using System.IO;
using System.Text;
using Common_Functions;
namespace ActivateDotNetFramework
{
/**
* @brief helper library to activate .Net Framework on certain operating systems
*
* @args None
*
*
* @author Daniel Lee
* @date Jan 17,2012
* @version 1.0
* @bug 6540 Role Management tool required for 2008R2 to install .NET 3.5 SP1
**/
class ActivateDotNetFramework
{
static void Main(string[] args)
{
string logFile = "ActivateDotNetFeatures.log";
WriteToLog logWriter = null;
Process p = null;
ProcessStartInfo startInfo = null;
try
{
logWriter = new WriteToLog(logFile, "");
logWriter.UpdateLog("AMAZINGCHARTS! ActivateDotNetFramework Custom Action");
//open powershell process to activate the .net framework feature. See:
//http://community.flexerasoftware.com/archive/index.php?t-182914.html
startInfo = new ProcessStartInfo();
startInfo.FileName = "powershell.exe";
startInfo.Arguments = "Import-Module ServerManager ; Add-WindowsFeature as-net-framework";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.UseShellExecute = true;
string sLogMsg = "";
p = new Process();
p.StartInfo = startInfo;
sLogMsg = "ProcessStartInfo Data ... ";
logWriter.UpdateLog(sLogMsg);
sLogMsg = "FileName: " + p.StartInfo.FileName + "\n Arguments:" + p.StartInfo.Arguments;
logWriter.UpdateLog(sLogMsg);
p.Start();
p.WaitForExit();
sLogMsg = "ActivateDotNetFramework Custom Action Return Code: " + p.ExitCode.ToString();
logWriter.UpdateLog(sLogMsg);
}
catch (Exception)
{
throw;
}
finally
{
}
}
}
}
Любые идеи о том, как мне поступить с этим в VS2010? Или проблема в моей конфигурации CA пакета Wise Installation Studio? Насколько я вижу, VS2010 создает только управляемый файл ActivateDotNetFramework.dll и ничего больше. Я добавил этот файл к своим ресурсам в мудром пакете и перечислил имя функции как ActivateDotNetFramework.
Я был вокруг и вокруг этого больше дня. Любая помощь приветствуется. Благодарю.
Дэн Ли AmazingCharts! Релиз Инженер
1 ответ
Этот код должен быть скомпилирован как EXE и запускаться как пользовательское действие EXE. Но мой главный вопрос - зачем вообще беспокоиться? Все, что вам нужно сделать в Windows, чтобы установить функцию, это позвонить:
dism / online / Enable-Feature FeatureName
Для получения списка имен элементов введите:
dism / online / Get-Features