Как исправить: не найден исполняемый файл, соответствующий команде dotnet-dslc?

Я провожу обзор литературы для своей диссертации и пробовал PROSE SDK от Microsoft. Однако всякий раз, когда я пытаюсь создать зависимости проекта из их образца [репо] (https://github.com/microsoft/prose), я получаю эту ошибку:

Target CompileGrammar:
    dotnet dslc  "@/Users/username/test/prose/ProgramSynthesis/ProseSample.Substrings/obj/ProseSample.Substrings.rsp" 
    dotnet dslc  "@/Users/username/test/prose/ProgramSynthesis/ProseSample.Substrings/obj/ProseSample.Substrings.rsp"
    No executable found matching command "dotnet-dslc"

Я следовал инструкциям по установке, приведенным здесь.

Вот информация о конфигурации dotnet:

macOS: High Sierra версии 10.13.6 Visual Studio 2019 для Mac версии 8.0.9 dotnet --info

.NET Core SDK (reflecting any global.json):
 Version:   2.2.106
 Commit:    aa79b139a8

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.13
 OS Platform: Darwin
 RID:         osx.10.13-x64
 Base Path:   /usr/local/share/dotnet/sdk/2.2.106/

Host (useful for support):
  Version: 2.2.4
  Commit:  f95848e524

.NET Core SDKs installed:
  2.2.105 [/usr/local/share/dotnet/sdk]
  2.2.106 [/usr/local/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.2.3 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.All 2.2.4 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.2.3 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 2.2.4 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.2.3 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 2.2.4 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

А вот файл .csproj:

ProseSample.Substrings.csproj

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net45</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <ProjectReference Include="..\ProseSample.Substrings.Semantics\ProseSample.Substrings.Semantics.csproj" />
    <PackageReference Include="Microsoft.ProgramSynthesis.Common" Version="6.20.0" />
    <PackageReference Include="Microsoft.ProgramSynthesis.DslcTargets" Version="6.20.0" />
    <DotNetCliToolReference Include="Microsoft.ProgramSynthesis.Dslc" Version="6.20.0" />
  </ItemGroup>

</Project>

Выход сборки:

Building ProseSample (Debug)
Build started 6/1/2019 5:53:06 PM.
__________________________________________________
Project "/Users/username/test/prose/ProgramSynthesis/ProseSample.Substrings.Semantics/ProseSample.Substrings.Semantics.csproj" (Build target(s)):

Target GenerateTargetFrameworkMonikerAttribute:
  Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
Target CoreGenerateAssemblyInfo:
  Skipping target "CoreGenerateAssemblyInfo" because all output files are up-to-date with respect to the input files.
Target CoreCompile:
  Skipping target "CoreCompile" because all output files are up-to-date with respect to the input files.
Target _CopyFilesMarkedCopyLocal:
    Touching "/Users/username/test/prose/ProgramSynthesis/ProseSample.Substrings.Semantics/obj/Debug/net45/ProseSample.Substrings.Semantics.csproj.CopyComplete".
Target CopyFilesToOutputDirectory:
    ProseSample.Substrings.Semantics -> /Users/username/test/prose/ProgramSynthesis/ProseSample.Substrings.Semantics/bin/Debug/net45/ProseSample.Substrings.Semantics.dll
__________________________________________________
Project "/Users/username/test/prose/ProgramSynthesis/ProseSample.Substrings/ProseSample.Substrings.csproj" (Build target(s)):

Target _GetProjectReferenceTargetFrameworkProperties:
    __________________________________________________
    Project "/Users/username/test/prose/ProgramSynthesis/ProseSample.Substrings/ProseSample.Substrings.csproj" is building "/Users/username/test/prose/ProgramSynthesis/ProseSample.Substrings.Semantics/ProseSample.Substrings.Semantics.csproj" (GetTargetFrameworks target(s)):

Target ResolveProjectReferences:
    __________________________________________________
    Project "/Users/username/test/prose/ProgramSynthesis/ProseSample.Substrings/ProseSample.Substrings.csproj" is building "/Users/username/test/prose/ProgramSynthesis/ProseSample.Substrings.Semantics/ProseSample.Substrings.Semantics.csproj" (GetTargetPath target(s)):

    __________________________________________________
    Project "/Users/username/test/prose/ProgramSynthesis/ProseSample.Substrings/ProseSample.Substrings.csproj" is building "/Users/username/test/prose/ProgramSynthesis/ProseSample.Substrings.Semantics/ProseSample.Substrings.Semantics.csproj" (GetNativeManifest target(s)):

Target GenerateTargetFrameworkMonikerAttribute:
  Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
Target CompileGrammar:
    dotnet dslc  "@/Users/username/test/prose/ProgramSynthesis/ProseSample.Substrings/obj/ProseSample.Substrings.rsp" 
    dotnet dslc  "@/Users/username/test/prose/ProgramSynthesis/ProseSample.Substrings/obj/ProseSample.Substrings.rsp"
    No executable found matching command "dotnet-dslc"
    /Users/username/.nuget/packages/microsoft.programsynthesis.dslctargets/6.20.0/build/Microsoft.ProgramSynthesis.DslcTargets.targets(82,9): error MSB3073: The command "dotnet dslc  "@/Users/username/test/prose/ProgramSynthesis/ProseSample.Substrings/obj/ProseSample.Substrings.rsp"" exited with code 1.
Done building target "CompileGrammar" in project "ProseSample.Substrings.csproj" -- FAILED.

Done building project "ProseSample.Substrings.csproj" -- FAILED.

Build FAILED.

/Users/username/.nuget/packages/microsoft.programsynthesis.dslctargets/6.20.0/build/Microsoft.ProgramSynthesis.DslcTargets.targets(82,9): error MSB3073: The command "dotnet dslc  "@/Users/username/test/prose/ProgramSynthesis/ProseSample.Substrings/obj/ProseSample.Substrings.rsp"" exited with code 1.
    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:01.21

========== Build: 1 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Build: 1 error, 0 warnings

Заранее спасибо!


person Asos    schedule 01.06.2019    source источник


Ответы (1)


С последней PROSE v7.11.1 и шаги ниже, сборка, похоже, теперь проходит на macOS.

Сбой сборки вызван dotnet dslc инструментом не запускается в вашей среде.

Во-первых, этот инструмент кажется частью пакета NuGet, который необходимо установить.

$ cd ProseSample
$ dotnet add package Microsoft.ProgramSynthesis.Dslc --version 7.11.1

Далее, кажется, что кросс-платформенный способ запуска этого инструмента, отвечающего за обязательный шаг генерации кода DSL, отличается - dotnet run dslc.

$ dotnet run dslc
$ dotnet build

Build succeeded.
    0 Warning(s)
    0 Error(s)

Я предполагаю, что для того, чтобы сборка работала в IDE, также необходимо отредактировать ~.nuget/packages/microsoft.programsynthesis.dslctargets/7.11.1/build/Microsoft.ProgramSynthesis.DslcTargets.targets и заменить все 2 вхождения dotnet dslc на dotnet run dslc.

Надеюсь это поможет!

person bzz    schedule 28.05.2020