flamencist / flamencist/Core.System.Configuration.Install

"Cannot get service name" because options for InstallContext need '-' prefix, not '/'.

Aberta
#15 0 comentários 0 reações 0 responsáveis Ver no GitHub
Linguagem predominante
C#
Estrelas
26
Forks
12
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

I just ported some software from .NET FrameWork to .NET Core and gratefully used this Nuget package to allow it to install itself as Windows service. I wanted to minimize the amount of work so I didn't want to re-architect my service to the new Worker Service architecture, at least for now.

That didn't work: the install failed with "Cannot get service name" and then rolled back.

It turns out that the problem was that I used a slash '/' instead of a dash '-'.

I don't know if the slash was officially supported in the .NET FrameWork code; the code I'm working on was based on some sample code on the Internet about 10 years ago. So I don't know if I should request that '/' be an alternate prefix character to '-'. I just wanted to post this as an issue because it took me a long time to figure this out, and maybe this is useful for others who run into the same situation.

Fragment of my code after correcting the problem:

```
private static TransactedInstaller CreateTransactedInstaller(Type T)
{
TransactedInstaller result = new TransactedInstaller();

// NOTE: the path option must start with '-', not '/'. The path must be the .exe file, not a .dll file.
string path = "-assemblypath=" + System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;

result.Installers.Add(new InstallerConsoleModule(T, null)); // Constructor checks the type
result.Context = new InstallContext(null, new[] { path });

return result;
}
```

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Direção de pesquisa

Comece rastreando como InstallContext analisa as opções passadas por CreateTransactedInstaller, especialmente o valor de -assemblypath e a falha relatada relacionada ao nome do serviço. Reproduza o comportamento com os prefixos de barra e hífen, estabeleça em seguida o comportamento pretendido dos prefixos e cubra o resultado com o teste ou a documentação relevante disponível no projeto.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
csharp
Domínio
tooling
Tipo de issue
Bug
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.