GNU/Linux >> Linux の 問題 >  >> Linux

MacOS で net461 を必要とする dotnet SDK プロジェクトをビルドする最も簡単な方法

(.NET Core を使用) SDK ) .NET Framework 用にビルドする最も簡単な方法 ma​​cOS で実行する場合の TFM または Linux .NET Core CLI を使用することは、Microsoft の .NET Framework Targeting Pack Nuget パッケージを利用することです。 (現在プレビュー中 ):

<ブロック引用>

これらのパッケージを使用すると、少なくとも MSBuild または .NET Core SDK がインストールされている任意のマシンで .NET Framework プロジェクトをビルドできます。

.NET Framework プロジェクトでは、次のシナリオと利点が有効になります:

  • Visual Studio や .NET Framework ターゲット パックなどの前提条件をインストールするための管理者操作を必要とせずにビルドします。
  • .NET Core SDK でサポートされているオペレーティング システムでライブラリを構築する
  • Mono ベースのプロジェクトを構築する

Microsoft.NETFramework.ReferenceAssemblies メタパッケージを含めるか、特定のパッケージ (この場合は Microsoft.NETFramework.ReferenceAssemblies.net461) のみを使用できます。

パッケージを *.csproj に追加します またはあなたの Directory.Build.props :

<Project>
  <ItemGroup>
    <PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" PrivateAssets="All" />
  </ItemGroup>
</Project>

注:PrivateAssets 属性は、どの依存アセットが消費されるかを制御しますが、親プロジェクトには流れません。ドキュメントを参照してください。

更新

これは、.NET 5 SDK を使用する必要がなくなりました。 (例:5.0.100 )、これで PackageReference が自動的に追加されます ReferenceAssemblies.NET Framework 用 .


通常の Mac で bash 経由でビルドするには、最小限の手順は次のようになります:

  • Mono 6.0 をインストールします (VS Mac との相互運用には 5.2 をお勧めします。それは気にしません。Mono 6.0 と Dotnet コアとの相互運用の方が優れています)
  • dotnet SDK 2.2 をインストールします (必ずしもそうである必要はありませんが、私には問題ありません)
  • これを Directory.build.props ファイルに入れます (だれかが持っている場合は、改善を検討してください)
<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>
  • バッシュ:dotnet build SolutionFileName.sln 動作するようになりました
  • Rider 2019.1 以降をインストール
  • Rider:動作するはずです (ビルド ツール セクションで msbuild 16.0 を自動検出する必要があります)

Linux
  1. Linux 上の .NET Core 用 NuGet

  2. Linux で .NET Framework をターゲットとする NuGet パッケージをビルドする

  3. Cargo プロジェクトの名前を変更する方法はありますか?

  1. Debian11で.NetSDKをアップグレードする-ステップバイステップガイド?

  2. Pythonを使用してSSHする最も簡単な方法は何ですか?

  3. Ubuntu 16.04 LTS に dotnet SDK をインストールする方法

  1. LinuxARMデバイス用のクロスプラットフォームUIを構築するための新しい方法

  2. Jenkinsビルド:Jenkinsでフリースタイルプロジェクトを設定する

  3. GLFW 3 をビルドしてインストールし、Linux プロジェクトで使用する方法