Evands.CrossBuild 1.0.0-beta.1

Additional Details

This package was a test and has not delivered its intended capabilities. It will NOT function as intended and work will NOT be done to release an updated version that does.

This is a prerelease version of Evands.CrossBuild.
The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package Evands.CrossBuild --version 1.0.0-beta.1
                    
NuGet\Install-Package Evands.CrossBuild -Version 1.0.0-beta.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Evands.CrossBuild" Version="1.0.0-beta.1">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Evands.CrossBuild" Version="1.0.0-beta.1" />
                    
Directory.Packages.props
<PackageReference Include="Evands.CrossBuild">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Evands.CrossBuild --version 1.0.0-beta.1
                    
#r "nuget: Evands.CrossBuild, 1.0.0-beta.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Evands.CrossBuild@1.0.0-beta.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Evands.CrossBuild&version=1.0.0-beta.1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Evands.CrossBuild&version=1.0.0-beta.1&prerelease
                    
Install as a Cake Tool

Evands.Devolution

About

This package is available on Nuget under Evands.CrossBuild and provides a method for developing code for both Crestron 3-Series and 4-Series projects simultaneously in Visual Studio 2022.

How it works

This package will take the build output from a .Net Framework 3.5 project and sign it for use in the Crestron Sandbox. Note that this package does not handle validation of the assemblies and classes used for .Net 3.5 Compact Framework compatibility. Although most of the 3.5 libraries can be used on 3.5cf, there are some functions that are not available in 3.5cf that can be used in a full .Net 3.5 project. It is up to you to ensure you do not use any incompatible methods, properties, etc. in your project. This project is only tested using the modern csproj format, but may work on older style projects as well.

Handling differences between platforms

Since .Net Framework 4.7 projects do not need to include many Crestron assemblies, such as Crestron's Reflection implementation, you can work around the use of these libraries by selectively including the libraries in your projects and using #if NET35 or #if NET472_OR_GREATER or #if NET8_0 conditional compilation statements.

Additionally, using the modern project format you can selectively include Crestron assemblies only for certain builds.

 <ItemGroup>
   <PackageReference Include="Crestron.SimplSharp.SDK.Library" Version="2.21.90" ExcludeAssets="Compile" GeneratePathProperty="true" />
   <PackageReference Include="Evands.CrossBuild" Version="1.0.0-beta.1" Condition="'$(TargetFramework)' == 'net35'" />
 </ItemGroup>

 <ItemGroup Condition="'$(TargetFramework)' == 'net8'">
   <Reference Include="$(PkgCrestron_SimplSharp_SDK_Library)\lib\net6.0\SimplSharpHelperInterface.dll" />
 </ItemGroup>

 <ItemGroup Condition="'$(TargetFramework)' == 'net472' Or '$(TargetFramework)' == 'net35'">
   <Reference Include="$(PkgCrestron_SimplSharp_SDK_Library)\lib\net47\SimplSharpHelperInterface.dll" />
 </ItemGroup>

 <ItemGroup Condition="'$(TargetFramework)' == 'net35'">
   <Reference Include="$(PkgCrestron_SimplSharp_SDK_Library)\lib\net47\SimplSharpReflectionInterface.dll" />
 </ItemGroup>

Requirements

If you're currently developing for both 3-Series in Visual Studio 2008 and 4-Series in Visual Studio 2022 you should already have all the requirements to use this package.

Minimum Requirements

You can use the following list if you are planning on deploying on a build server or in another minimal footprint install where you do not necessarily need Visual Studio 2008.

  • Crestron's Device Database
  • Crestron's Crestron Database
    • Both the databases are required due to checks made by the S# plugin assemblies. The actual references used are those installed via the .Net4.7 Crestron Nuget packages.
  • .Net Framework 3.5
    • Install via "Turn Windows Features On/Off" in Windows.
  • Visual Studio 2022 (Earlier versions or JetBrains Rider may work, but do not get tested.)
  • Crestron S# Plugin for Visual Studio 2008
    • Alternatives to installing the Plugin, which allows you to use on a machine that does not have Visual Studio 2008:
      • Copy the contents of the S# Plugin install folder from one machine to another, typically located in C:\Program Files (x86)\Crestron\Simpl#.
        • Note that providing this plugin to those who do not have access to Crestron's tools may be a violation of the plugin's license agreement.
      • Either ensure this folder is located in the aforementioned path, or modify your project file (or commandline MSBuild invocation) to set the variable CrestronPluginPath to the path of your choosing, such as: <CrestronPluginPath>C:\build-tools\S#Plugin\</CrestronPluginPath>.
      • Ensure that the CAPICOM.dll component from Microsoft has been registered.
        • This is likely installed either by the Plugin or Crestron Toolbox. If you already have $ENV:windir\SysWOW64\capicom.dll on your system you likely do not need to worry about this step.
        • At the time of writing, this is available on Github https://github.com/anzz1/capicom_sdk.
          • At the time of this writing the hash for the linked capicom.dll matches that of the capicom.dll already installed on my development system.
      • Registry Key Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio\9.0\InstallDir that points to VS 2008 Installation.
        • The location this key points to does not have to point to an actual installation of Visual Studio 2008.
        • Under the location this key points to add the following paths and empty text files (noting that the .zip portions of the paths are not files; the folders should include the .zip in their names):
          • /ProjectTemplatesCache/CSharp/Crestron/SIMPLSharpLibrary.zip/Class1.cs
          • /ProjectTemplatesCache/CSharp/Crestron/SIMPLSharpProgram.zip/ControlSystem.cs
          • /ProjectTemplatesCache/CSharp/Crestron/SIMPLSharpProgramLib.zip/Class1.cs

Typical Requirements

The following are the typical requirements for developing for 3-Series with Visual Studio 2008. When this package compiles for 3-Series it creates a Visual Studio 2008 compatible solution and projects, which can themselves be opened in Visual Studio 2008. While the development process is nicer in a modern IDE, debugging code on a 3-Series processor is fairly painless (if you know what you're doing) so having Visual Studio 2008 compatible projects is a must.

  • .Net Framework 3.5
    • Install via "Turn Windows Features On/Off" in Windows.
  • .Net Compact Framework 3.5
    • Available on archive.org or under Crestron's Online Help article 1001084, if you are a Crestron partner.
  • .Net Compact Framework 3.5 Power Toys
  • Visual Studio 2022 (Earlier versions or JetBrains Rider may work, but do not get tested.)
    • .Net Framework 4.7 targeting pack.
  • Visual Studio 2008 & SP1
  • Crestron Toolbox
  • Crestron's Device Database
  • Crestron's Crestron Database
    • Both the databases are only required due to checks made by the S# plugin assemblies. The actual references used are those installed via the .Net4.7 Crestron Nuget packages.
  • Crestron S# Plugin for Visual Studio 2008

Ignoring Generated Files

You shouldn't plan on committing any of the generated csproj or sln files to your code repositories. If you use Git the easiest thing to do is add two entries to your gitignore file:

  • *.2008.sln
  • *.2008.csproj
Product Compatible and additional computed target framework versions.
.NET Framework net35 is compatible.  net40 was computed.  net403 was computed.  net45 was computed.  net451 was computed.  net452 was computed.  net46 was computed.  net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 3.5

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated