(pomocí .NET Core SDK ) Nejjednodušší způsob sestavení pro .NET Framework TFM při spuštění na jednom z macOS nebo Linux pomocí rozhraní .NET Core CLI je použití balíčků Nuget Packages .NET Framework Targeting Pack od Microsoft (aktuálně v náhledu ):
Tyto balíčky umožňují vytváření projektů .NET Framework na jakémkoli počítači s nainstalovaným alespoň MSBuild nebo .NET Core SDK.
Pro projekty .NET Framework jsou povoleny následující scénáře a výhody:
- Vytvářejte bez nutnosti operací správce k instalaci nezbytných požadavků, jako jsou sady Visual Studio nebo .NET Framework pro cílení.
- Vytvářejte knihovny na libovolném operačním systému podporovaném sadou .NET Core SDK.
- Vytvářejte projekty založené na mono.
Můžete buď zahrnout metabalík Microsoft.NETFramework.ReferenceAssemblies; nebo použít pouze konkrétní balíček, což je ve vašem případě Microsoft.NETFramework.ReferenceAssemblies.net461.
Přidejte balíček do *.csproj
nebo vaše Directory.Build.props
:
<Project>
<ItemGroup>
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All" />
</ItemGroup>
</Project>
Poznámka:PrivateAssets
atribut řídí, která aktiva závislostí budou spotřebována, ale nepřejdou do nadřazeného projektu. Podívejte se na dokumenty.
Aktualizovat
To již není vyžadováno pomocí .NET 5 SDK (např. 5.0.100 ), který nyní automaticky přidá PackageReference
do ReferenceAssemblies pro .NET Framework .
Abyste mohli stavět přes bash na vanilkovém Macu, zdá se, že minimální kroky jsou:
- Nainstalujte Mono 6.0 (5.2 je doporučeno pro VS Mac interop, to mě nezajímá a Interop Mono 6.0 s jádrem Dotnet je lepší)
- Nainstalovat dotnet SDK 2.2 (nemusí to být přesně to, ale funguje to pro mě)
- Vložte to do souboru Directory.build.props (otevřený pro vylepšení, pokud někdo nějaké má)
<Project> <PropertyGroup> <IsOSX Condition="'$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::OSX)))'== 'true'">true</IsOSX> </PropertyGroup> <PropertyGroup Condition=" '$(IsOSX)' == 'true' "> <FrameworkPathOverride>/Library/Frameworks/Mono.framework/Versions/Current/Commands/../lib/mono/4.6.1-api</FrameworkPathOverride> </PropertyGroup> </Project>
- Bash:
dotnet build SolutionFileName.sln
by nyní mělo fungovat - Nainstalujte si Rider 2019.1 nebo novější
- Rider:should Just Work (měl by automaticky detekovat msbuild 16.0 v sekci nástrojů pro sestavení)