...
Install the following software on your Windows systemand then refer to the Ice Builder for Visual Studio instructions:
A supported version of Visual Studio
With Visual Studio 2017, you can optionally install the .NET Core cross-development toolset to create applications for .NET Core 2.0.
- The Ice Builder for Visual Studio extension
- The NuGet package The
zeroc.ice.net
NuGet package, described later on this page - Optionally the .NET Core 2.0 SDK if you want to create applications for .NET Core 2.0
Ztop |
---|
Building Ice Applications for .NET with the .NET Core SDK
Install the following software and then refer to the Ice Builder for MSBuild instructions:
The .NET Core 2.0 SDK for your operating system
- The NuGet package The
zeroc.ice.net
NuGet package, described later on this page - The
slice2cs
compilerslice2cs
is a command-line tool written in C++ and available on most platformsPlatform Distribution Package with slice2cs Ubuntu apt packages zeroc-ice-compilers
You need to install zeroc-ice-compilers from the 3.7.1 beta repo, as it includes a fix to the generated code for optional. The corresponding bug affects only Linux applications.
RHEL RPMs ice-compilers
You need to install ice-compilers from the 3.7.1 beta repo, as it includes a fix to the generated code for optional. The corresponding bug affects only Linux applications.
Windows NuGet zeroc.ice.net
Tip |
---|
On Windows, you can use Ice Builder for Visual Studio to configure Ice Builder for MSBuild, and the resulting projects can be used on any platform. |
Ztop |
---|
Programming Language
You can use any .NET programming language with Ice, however, the preferred programming language for Ice .NET applications is C# since:
...
The Ice for .NET (zeroc.ice.net) NuGet package is organized as follows:
Folder | Contents |
---|---|
lib\net45 | Assemblies for .NET Framework 4.5.1 |
lib\netstandard2.0 | Assemblies for .NET Standard 2.0 |
tools | slice2cs.exe , slice2html.exe (Windows-only native tools) |
tools\net45 |
|
tools\netcoreapp2.0 |
|
build | MSBuild support files |
slice | Slice files |
For the 3.7.1 beta release, zeroc.ice.net
is available from the beta repository https://dev.zeroc.com/nexus/repository/nuget.ice-v3.7.1-netcore-beta0
.
On windows Windows, you can add this repository as a new package source using Visual Studio's "Tools > NuGet Package Manager > Package Manager Settings...":
On Linux you need to edit NuGet configuration (~/.nuget/NuGet/NuGet.Config
) to add a new package source
Code Block |
---|
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="zeroc.com" value="https://dev.zeroc.com/nexus/repository/nuget.ice-v3.7.1-netcore-beta0/" />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>
|
Ztop |
---|
.NET Framework and .NET Standard Assemblies
zeroc.ice.net
includes two sets of Ice assemblies: one set of assemblies for the .NET Framework 4.5 and another set for .NET Standard 2.0.
These assemblies are the same except for the differences described below:
.NET Framework 4.5 Assemblies | .NET Standard 2.0 Assemblies | |
---|---|---|
Run-time platform | Windows | Windows, Linux, macOS |
Target Framework | .NET Framework 4.5.1 or greater on Windows | Any implementation of .NET Standard 2.0, including .NET Core 2.0 and .NET Framework 4.6.1. |
Ice properties can be read from the Windows Registry | ||
Signals caught by Ice.Application | Signal catching implemented using the Windows native function SetConsoleCtrlHandler. | Signal catching implemented using the portable .NET event Console.KeyPress. |
Info |
---|
The .NET Standard 2.0 assemblies are expected to work with any .NET implementation of .NET Standard 2.0, however, they are currently tested and supported only with .NET Core 2.0 on Windows and Linux. |
Ztop
Building Applications with Visual Studio or MSBuild
Adding zeroc.ice.net
to a Visual Studio or MSBuild project imports the props and targets files from the build
folder into that project.
The props file defines the following properties:
IceVersion
3.7
IceIntVersion
30701
IceVersionMM
3.7
IceSoVersion
37
IceNugetPackageVersion
3.7.1
IceHome
$(MSBuildThisFileDirectory)..\..
IceToolsPath
$(IceHome)\tools
The targets file defines two MSBuild
targets, SliceCompile
and SliceClean
. SliceCompile
compiles Slice files with slice2cs
, while SliceClean
removes the files generated by slice2cs
. The SliceCompile
target runs before the default Build
target and compile all project items of type Slice. Similarly, the SliceClean
target runs before the default Clean
target and removes all the files generated by the SliceCompile
target.
The SliceCompile
target can be customized using the following MSBuild properties:
SliceCompiler
Windows: $(IceHome)\tools\slice2cs.exe
Other: /usr/bin/slice2cs
SliceCompilerOutputDir
$(MSBuildThisFileDirectory)generated
--output-dir
option of slice2cs
.SliceCompilerArgs
Ztop |
---|
Compression with bzip2
Ice for .NET supports the optional compression of Ice requests and responses using the bzip2 native library. The bzip2 native DLL for Windows x64 is included in the zeroc.ice.net
package. You can use the bzip2 system library on Linux and macOS.
Ztop |
---|
Using the Sample Programs
Sample programs are available at the ice-demos GitHub repository. You can browse this repository to see build and usage instructions for all supported programming languages. You can clone this repository with:
Code Block |
---|
git clone -b netcore3.7.1-rc https://github.com/zeroc-ice/ice-demos.git cd ice-demos |
Ztop |
---|