【发布时间】:2019-07-12 09:48:24
【问题描述】:
尝试在 .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 无法做到这一点
有谁知道 csproj 设置是什么来使它工作?我似乎找不到任何关于此的好信息。
【问题讨论】:
-
这里可能有一些提示(不过是.net框架项目):github.com/mosa/MOSA-Project/blob/master/Source/Mosa.Korlib/…
-
.csproj没有魔法。一切都是通过构建脚本完成的。特别是Microsoft.NET.Sdk构建脚本确实将源文件收集到Compile项目为 C# 编译器生成适当的命令行并调用它,等等。如果要删除它,则需要用其他东西替换它。您需要自己编写构建脚本或导入其他构建脚本。目前您的项目文件只是一组属性。 MSBuild 不知道如何处理它们。它没有要构建的目标。 -
@PetSerAl 为什么
构建脚本不允许 C# 7.3 那么呢? -
@zezba9000 我在使用带有
<Project Sdk="Microsoft.NET.Sdk">的C# 7.3 功能时没有问题。我不知道你的意思。 -
<DisableImplicitFrameworkReferences>True</DisableImplicitFrameworkReferences>