Create a C# Console App in Visual Studio for Mac
Contents
Create a C# Console App in Visual Studio for Mac#
This topic describes the steps needed to configure a C# console application in Visual Studio for Mac. These steps have been verified to work with Visual Studio for Mac 2022, on macOS Ventura 13.5.2.
Create the Visual Studio project#
Create a C# console application in Visual Studio.
Choose
.NET 6.0
for Target FrameworkName the project
simple-converter
.Leave
Put project file in a subfolder
unchecked
Replace the contents of Program.cs with this code:
using PrimoSoftware.AVBlocks; namespace SimpleConverter { class Program { static void Main(string[] args) { Library.Initialize(); var inputInfo = new MediaInfo(); inputInfo.Inputs[0].File = "AAP.m4v"; if (inputInfo.Open()) { var inputSocket = MediaSocket.FromMediaInfo(inputInfo); var outputSocket = MediaSocket.FromPreset(Preset.Video.Generic.MP4.Base_H264_AAC); outputSocket.File = "AAP.mp4"; using (var transcoder = new Transcoder()) { transcoder.Inputs.Add(inputSocket); transcoder.Outputs.Add(outputSocket); if (transcoder.Open()) { transcoder.Run(); transcoder.Close(); } } } Library.Shutdown(); } } }
Download the Darwin version of AVBlocks for .NET (net60). The file you need will have a name similar to
avblocks-net60-v3.0.1-demo.1-darwin.zip
- the version number may differ.Unzip in a location of your choice, then copy the file
AVBlocks.clrcore.x64.dll
andlibAVBlocks.dylib
to the project’s directory.Switch to the project in Visual Studio and add a reference to
AVBlocks.clrcore.x64.dll
. To do this right click thesimple-converter
project, selectAdd | Reference | .NET Assembly | Browse
then selectAVBlocks.clrcore.x64.dll
.Add the
libAVBlocks.dylib
to your project simply as a file, open file properties, and set the ‘Copy to Output Directory’ to ‘Copy if newer’, so it is copied to the output directory automatically. TheAVBlocks.clrcore.x64.dll
needslibAVBlocks.dylib
and will not work without it.Build the project (Cmd + K)
Run the application#
Download the
AAP.m4v
HD movie from the Internet Archive and and save it inbin/Debug/net6.0
under the project’s directory.Run the application in Visual Studio. Wait a few seconds for the Transcoder to finish. The converted file
AAP.mp4
will be in thebin/Debug/net6.0
directory.
Troubleshooting#
You may get a
'DllNotFoundException' exception: Unable to load DLL 'libAVBlocks.dylib': The specified module could not be found.
To fix that, copy the filelibAVBlocks.dylib
tobin/Debug/net6.0
under the project’s directory.Transcoder.Open may fail if there is already a file
AAP.mp4
in thebin/Debug/net6.0
directory. DeleteAAP.mp4
to solve that.