。NET Core中的自定义“ CoreLib”?

问题描述 投票:6回答:1

试图在.NET Core项目中获取自定义CoreLib以便在VS 2017中加载。这在.NET Framework中非常容易,因为您所需要的只是“ NoStdLib”,但使用.NET Core似乎要多得多是必需的。我不断收到:“项目文件不完整。预期的导入丢失了。”

<?xml version="1.0" encoding="utf-8"?>
<!--<Project Sdk="Microsoft.NET.Sdk">-->
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>
        <ProjectGuid>{3DA06C3A-2E7B-4CB7-80ED-9B12916013F9}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>

    <!--<TargetFramework>netcoreapp2.2</TargetFramework>-->
        <GenerateTargetFrameworkAttribute>false</GenerateTargetFrameworkAttribute>
        <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
        <ExcludeMscorlibFacade>true</ExcludeMscorlibFacade>
        <NoStdLib>true</NoStdLib>
        <NoCompilerStandardLib>true</NoCompilerStandardLib>

        <LangVersion>latest</LangVersion>
        <RootNamespace>System</RootNamespace>
  </PropertyGroup>

    <PropertyGroup>
    <AssemblyName>System.Private.CoreLib</AssemblyName>
    <AssemblyVersion>4.0.0.0</AssemblyVersion>
    <MajorVersion>4</MajorVersion>
    <MinorVersion>6</MinorVersion>
    <ExcludeAssemblyInfoPartialFile>true</ExcludeAssemblyInfoPartialFile>
  </PropertyGroup>

</Project>

关闭System.Private.CoreLib.csproj正在执行的操作,不确定缺少的部分是什么?删除“ Sdk =” Microsoft.NET.Sdk“”会导致部分问题,因为我认为自定义corelib不能拥有该问题

我基于此的依据:https://github.com/dotnet/coreclr/blob/master/src/System.Private.CoreLib/System.Private.CoreLib.csproj

有人知道csproj设置是什么使它起作用吗?我似乎找不到任何好的信息。

c# .net .net-core csproj
1个回答
2
投票

感谢@PetSerAl:这正是我需要的。 .NET Core无法启动该库(可能是因为我的原语等未完全实现),但没有错误地编译了我项目所需的所有IL。

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

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <LangVersion>latest</LangVersion>

    <!-- Prevent .NET Core 3+ from generating exe -->
    <UseAppHost>false</UseAppHost>

    <!--Disable .NET Core SDK libs-->
    <NoStdLib>true</NoStdLib>
    <DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
  </PropertyGroup>

</Project>
© www.soinside.com 2019 - 2024. All rights reserved.