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

オープン
#15 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
csharp
領域
tooling

調査の方向性

まず、CreateTransactedInstaller から渡されるオプションを InstallContext がどのように解析するかを追跡します。特に -assemblypath の値と、報告されているサービス名の失敗を確認します。スラッシュ接頭辞とダッシュ接頭辞での動作を再現し、そのうえで意図された接頭辞の動作を明らかにし、プロジェクトで利用可能な関連するテストまたはドキュメントで結果をカバーします。

索引モデルが issue の本文から書いたものです。

説明

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;
        }
主要言語
C#
スター
26
フォーク
12
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

flamencist/Core.System.Configuration.Install のほかの issue

flamencist/Core.System.Configuration.Install の issue をすべて見る

似ている issue

C# の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。