Skip to content

A sample Visual Studio project leveraging github actions to build and publish TinyCLR OS libraries.

License

Notifications You must be signed in to change notification settings

microcompiler/tinyclr-github

Repository files navigation

Sample Dotnet Core TinyCLR Project

Build Status

This repo contains a sample Visual Studio project leveraging github actions to build and publish TinyCLR OS libraries. Automated action features include:

  • Continious build action
  • Release and publish action
  • Symbol Packages allowing an improved debugging experience
  • Embedded IntelliSense code-completion file
  • Embedded Source Link source code debugging
  • Self-contained NuGet Packages include logo and licenses files

Github Actions

Required CSPROJ file settings

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net452</TargetFramework>
    <FrameworkPathOverride>$(NugetPackagesPath)\.nuget\packages\ghielectronics.tinyclr.core\1.0.0\</FrameworkPathOverride>
    <DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="GHIElectronics.TinyCLR.Core" Version="1.0.0" PrivateAssets="all" />
    <PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="2.9.6">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
  <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0" PrivateAssets="all" />
  </ItemGroup>
</Project>

Required Directory.Build.props file settings

  <Project>
  <!-- Nuget Pack Properties -->
  <PropertyGroup>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
    <IncludeSymbols>false</IncludeSymbols>
    <SymbolPackageFormat>snupkg</SymbolPackageFormat>
    <VersionPrefix>1.0.0</VersionPrefix>
    <Version Condition=" '$(Version)' == '' and '$(VersionSuffix)' != '' ">$(VersionPrefix)-$(VersionSuffix)</Version>
    <Version Condition=" '$(Version)' == '' ">$(VersionPrefix)</Version> 
    <GenerateAssemblyInfo>true</GenerateAssemblyInfo>
    <AssemblyVersion>$(VersionPrefix).0</AssemblyVersion>
    <FileVersion>$(VersionPrefix).0</FileVersion>
    <Authors>Microcompiler</Authors>
    <Company>Bytewizer Inc.</Company>
    <RepositoryUrl>https://github.com/microcompiler/tinyclr-github</RepositoryUrl>
    <BuildNumber Condition=" '$(BuildNumber)' == '' ">0</BuildNumber>
    <AssemblyVersion>$(VersionPrefix).$(BuildNumber)</AssemblyVersion>
    <FileVersion>$(VersionPrefix).$(BuildNumber)</FileVersion>
    <PackageId>$(AssemblyName)</PackageId>
    <PackageTags>TinyCLR TinyCLROS</PackageTags>
    <PackageLicenseFile>LICENSE.md</PackageLicenseFile>
    <PackageIcon>logo.png</PackageIcon>
    <NoWarn>NU5105</NoWarn>  
  </PropertyGroup>
  <!-- Embedded files -->
  <ItemGroup>
    <None Include="..\..\LICENSE.md" Pack="true" PackagePath="$(PackageLicenseFile)"/>
    <None Include="..\..\images\logo.png" Pack="true" PackagePath="\"/>
  </ItemGroup>
</Project>

About

A sample Visual Studio project leveraging github actions to build and publish TinyCLR OS libraries.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published