English
Français

Blog of Denis VOITURON

for a better .NET world

.NET CLI pour déployer un site web localement

Posted on 2025-06-15

Vue d’ensemble

Si comme moi, il vous arrive de développer des outils internes pour votre équipe de développeurs, peut-être serez-vous intéressé de savoir comment créer “manuellement” un package dotnet tool.
Cet article vous explique cela étapes par étapes.

Bien dévidemment, pour des projets Console, vous pouvez ajouter les paramètres <PackAsTool> et <ToolCommandName> dans votre csproj. Mais pour un site web, vous avez besoin de toute une série de fichiers qui sont générés uniquement lors de la publication.

1. Créez votre site internet

D’abord vous devez disposer d’un site internet. Vous pouvez en créer rapidement un exemple via dotnet new blazorserver.

Plus tard, nous allons publier ce site web via dotnet publish -c Release -o ./bin/Publish afin de disposer du site web dans un sous dosser bin/publish.

2. Configurez votre projet

Vous devez ajouter ces deux fichiers pour configurer votre projet pour une sortie en package DotNet Tool.

3. Adapter votre Program.cs

Par défault, votre projet devrait démarrer avec le port 5000 avec un dossier des Assets wwwroot référencé à partir du dossier courant. Vous pouvez adapter cela via ce morceau de code à placer dans votre classe Program

Vous pouvez également démarrer automatiquement le navigateur par défaut pour afficher immédiatement votre site web.

public class Program
{
	public static void Main(string[] args)
	{
#if (RELEASE)
		var wwwRootDirectory = Path.Combine(AppContext.BaseDirectory, "wwwroot");
		var options = new WebApplicationOptions
		{
			WebRootPath = wwwRootDirectory,
			Args = args,
		};

		var builder = WebApplication.CreateBuilder(options);

		builder.WebHost.ConfigureKestrel(serverOptions =>
		{
			serverOptions.ListenAnyIP(6789, listenOptions =>  // 👈 Set a specifi port number
			{
            // Uses the trusted dev cert automatically
				listenOptions.UseHttps(); 
			});
		});
#else
		var builder = WebApplication.CreateBuilder(args);
#endif

		// Keep the existing code
      // ...

		var app = builder.Build();

		// Keep the existing code
      // ...

		// Launch browser only in release mode and when running locally
#if RELEASE
		if (OperatingSystem.IsWindows() || OperatingSystem.IsLinux() || OperatingSystem.IsMacOS())
		{
			var url = "https://localhost:6789"; // or your configured URL
                try
			{
				System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo
				{
					FileName = url,
					UseShellExecute = true
				});
			}
			catch (Exception ex)
			{
				Console.WriteLine($"Failed to launch browser: {ex.Message}");
			}
		}
#endif

		app.Run();
	}
}

4. Créer le package DotNet Tool

5. Installer l’outil avant de le publier

Langues

EnglishEnglish
FrenchFrançais

Suivez-moi

Articles récents