首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Reinforced.Typings在MacOS上找不到dotnet.exe

Reinforced.Typings在MacOS上找不到dotnet.exe
EN

Stack Overflow用户
提问于 2021-09-08 17:57:57
回答 2查看 116关注 0票数 0

我正在MacOS上开发一个dotnet5解决方案,Reinforced.Typings给了我以下编译错误。它试图运行dotnet.exe,我怀疑这是问题的核心,因为它在MacOS上不存在。有关于如何修复它的线索吗?

代码语言:javascript
复制
/Users/myuser/.nuget/packages/reinforced.typings/1.6.1/build/Reinforced.Typings.targets(3,3): Error MSB6003: The specified task executable "" could not be run. System.ComponentModel.Win32Exception (0x80004005): ApplicationName='dotnet.exe', CommandLine=' "/Users/myuser/.nuget/packages/reinforced.typings/1.6.1/tools/net5.0/rtcli.dll" profile "/var/folders/q3/zth_hlj12ts4w6zc9m42_ctr0000gn/T/tmp316575ae.tmp"', CurrentDirectory='', Native error= Cannot find the specified file
  at System.Diagnostics.Process.StartWithCreateProcess (System.Diagnostics.ProcessStartInfo startInfo) [0x0029f] in /Users/builder/jenkins/workspace/build-package-osx-mono/2020-02/external/bockbuild/builds/mono-x64/mcs/class/System/System.Diagnostics/Process.cs:778 
  at System.Diagnostics.Process.Start () [0x0003a] in /Users/builder/jenkins/workspace/build-package-osx-mono/2020-02/external/bockbuild/builds/mono-x64/mcs/class/referencesource/System/services/monitoring/system/diagnosticts/Process.cs:2006 
  at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.Start()
  at Microsoft.Build.Utilities.ToolTask.ExecuteTool (System.String pathToTool, System.String responseFileCommands, System.String commandLineCommands) [0x000c9] in /Users/builder/jenkins/workspace/build-package-osx-mono-pullrequest/pr/external/bockbuild/builds/msbuild-15/src/Utilities/ToolTask.cs:711 
  at Microsoft.Build.Utilities.ToolTask.Execute () [0x00433] in /Users/builder/jenkins/workspace/build-package-osx-mono-pullrequest/pr/external/bockbuild/builds/msbuild-15/src/Utilities/ToolTask.cs:1519  (MSB6003) (MyProject.Core)

我的配置类如下所示:

代码语言:javascript
复制
namespace MyProject.Core
{
    public static class ReinforcedTypingsConfiguration
    {
        public static void Configure(ConfigurationBuilder builder)
        {
            builder.Global(x => x.ExportPureTypings()
                                 .CamelCaseForProperties()
                                 .AutoOptionalProperties(true));

            builder.ExportAsInterfaces(TypesToExport);
        }

        private static List<Type> TypesToExport = new()
        {
            typeof(ProductDto)
        };
    }
}

我的Reinforced.Typings.settings.xml看起来像这样:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" ?>
<Project>
  <PropertyGroup>
    <RtForceTargetFramework>net5.0</RtForceTargetFramework>
    <RtTargetFile>$(ProjectDir)/contracts.d.ts</RtTargetFile>
    <RtConfigurationMethod>MyProject.Core.ReinforcedTypingsConfiguration.Configure</RtConfigurationMethod>
    <RtDivideTypesAmongFiles>false</RtDivideTypesAmongFiles>
    <RtBypassTypeScriptCompilation>false</RtBypassTypeScriptCompilation>
    <RtDisable>false</RtDisable>
  </PropertyGroup>
</Project>
EN

回答 2

Stack Overflow用户

发布于 2021-09-13 13:33:11

检查Reinforced.Typings的源代码,它会在内部调用RuntimeInformation.IsOSPlatform(OSPlatform.Windows)来确定是使用"dotnet.exe"还是"dotnet"

尝试创建一个简单的控制台应用程序,并检查RuntimeInformation.IsOSPlatform(OSPlatform.Windows)返回的内容。

源代码:RtCli.cs

票数 0
EN

Stack Overflow用户

发布于 2021-09-17 19:12:27

通过运行dotnet build *.sln,Reinforced.Typings可以在命令行中按预期工作。它也适用于Rider,它包装了相同的构建命令。

从Visual Studio for Mac构建则是另一回事。它似乎在build上运行了大量的东西,但没有运行dotnet build。不完全确定Visual Studio for Mac正在运行什么命令,但它看起来像是某种与目标/任务相关的流,以某种方式将OsPlatform设置为OsPlatform.Windows,尽管它显然是不正确的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69107712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档