vsSolutionBuildEvent 1.15.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package vsSolutionBuildEvent --version 1.15.0
NuGet\Install-Package vsSolutionBuildEvent -Version 1.15.0
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="vsSolutionBuildEvent" Version="1.15.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add vsSolutionBuildEvent --version 1.15.0
#r "nuget: vsSolutionBuildEvent, 1.15.0"
#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.
// Install vsSolutionBuildEvent as a Cake Addin
#addin nuget:?package=vsSolutionBuildEvent&version=1.15.0

// Install vsSolutionBuildEvent as a Cake Tool
#tool nuget:?package=vsSolutionBuildEvent&version=1.15.0

Event-Catcher with variety of advanced Actions to service projects, libraries, build processes, runtime environment of the Visual Studio, MSBuild Tools, and …

Control everything: Visual Studio, MSBuild Tools, CI, and more …

「 @ ☕ 」

vsSolutionBuildEvent 1.15.0.49131+f1cc7d0

Configuration:  RCI/REL_SDK10 ( Release )

* Bridge:         1.4
* Provider:       3.0

:: generated by a vsSolutionBuildEvent 1.14.1.34071

alternate text is missing from this package README image

alternate text is missing from this package README image

Source Code

Why vsSolutionBuildEvent ?

Advanced handler of the most events from MS Visual Studio & MSBuild tools. Full control and flexible multi-actions for basic pre/post events and other additional such as:

  • CommandEvent, Errors, Warnings, Cancel-Build, Output-Build, Transmitter, Logging

Ability to handle events for all subprojects at once from the whole solution as an Solution-Events or individually for each separately.

Various modes for everything:

Supports Advanced MSBuild & SBE-Scripts engine for your awesome ideas.

Provides CI support (TeamCity, AppVeyor, Azure DevOps, ...), Command-Line mode and lot of other features for convenient work with the builds, tests, versioning, IO operations, and so on. See the documentation.

Advanced MSBuild

Through E-MSBuild engine.

#[$(
    [System.Math]::Exp('$(
        [MSBuild]::Multiply(
            $([System.Math]::Log(10)), 
            4
        ))'
    )
)]
$(n = 0)       $(desc = "Hello ")
$(n += 3.14)   $(desc += "from vsSBE !")
$(n += $(n))   $(p1 = " Platform is $(Platform)")
$(...)
$(...:project) - from selected project in your solution
$$(...) ... $$(...:project)
$(tStart = $([System.DateTime]::Parse("2014/01/01").ToBinary()))
$([System.Guid]::NewGuid())

$([System.TimeSpan]::FromTicks($([MSBuild]::Subtract($(tNow), $(tStart))))
                        .TotalHours.ToString("0"))

$(pdir = $(ProjectDir:project))
$(pdir = $(ProjectDir.Replace('\', '/'):project))

#SobaScript

https://github.com/3F/SobaScript -- Extensible Modular Scripting Programming Language.

#["
    #SobaScript in action
"]
#[var v = 1.2.3]
#[$(log = "$(TMP)/v.txt")]

#[($(Configuration) ~= Deb || true)
{
    #[var tBase     = $([System.DateTime]::Parse('2019/08/01').ToBinary())]
    #[var tNow      = $([System.DateTime]::UtcNow.Ticks)]
    #[var revBuild  = #[$(
        [System.TimeSpan]::FromTicks('$(
            [MSBuild]::Subtract(
            $(tNow), 
            $(tBase))
        )')
        .TotalMinutes
        .ToString('0')
    )]]
    
    #[var v = $(v).$([MSBuild]::Modulo($(revBuild), $([System.Math]::Pow(2, 14))))]
}]

#[var v = $([System.String]::Format("v{0}\r\n\t", $(v)))]

#[try
{ 
    #[File write("#[var log]"):> Example #[var v] Generated by a vsSolutionBuildEvent]
    #[IO scall("notepad", "#[var log]")]
}
catch(err, msg)
{
    $(err) - Type of Exception
    $(msg) - Error Message
}]

For example, you can even exclude projects from build at runtime:

#[Build projects.find("name").IsBuildable = false]

Capture data from external utilities:

#[var bSha1 = #[IO sout("git", "rev-parse --short HEAD")]]

Work with files and archives:

#[IO copy.file("$(odir)/notes.txt", "$(pDirCIM)bin\\$(cfg)\\", true)]
#[7z pack.files({
            "$(pDirBridge)bin\$(cfg)\Bridge.*.*",
            "CI.MSBuild.dll",
            "CI.MSBuild.pdb",
            "$(pDirCIM)bin\$(cfg)\*.txt"}, "$(odir)CI.MSBuild_v$(numCIM)_[$(branchSha1)][$(netStamp)].zip")]

+DTE-commands, +Access to all MSBuild properties on the fly, +Conditional statements and lot of other components:

#[try
{
    #[Box iterate(i = 0; $(i) < 10; i += 1): 
        ...
    ]
}catch{ }]

#[( #[vsSBE events.Pre.item(1).Enabled] || ($(Configuration) == "Release" && $(sysc)) )
{
    #[Build projects.find("name").IsBuildable = false]
}
else
{
    #[var bSha1 = #[IO sout("git", "rev-parse --short HEAD")]]
    ...
}]

... create new in 5 minutes

Processing modes

https://vssbe.r-eg.net/doc/Modes/

From simple commands to C# or even msbuild targets:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    <Target Name="Init">
        
    </Target>

    
</Project>

Automatic Version Numbering

See our Wizard for automatic code generation or use any custom scripts.

alternate text is missing from this package README image

Various environments

You can easily use this with TeamCity, Azure DevOps, AppVeyor, and any other automated environments:

alternate text is missing from this package README image

alternate text is missing from this package README image

alternate text is missing from this package README image

alternate text is missing from this package README image

...

Solution-wide Build events

Pre-Build / Post-Build events for all projects at once or individually for each separately: configure what you need.

alternate text is missing from this package README image

Stop build on first error

Immediately stop (at the same time) after the first appearance (compared with StopOnFirstBuildError plugin [?])

alternate text is missing from this package README image

Wiki

Read or Edit

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on vsSolutionBuildEvent:

Package Downloads
vsSBE.CI.MSBuild

Control everything: Visual Studio, MSBuild Tools, CI, and more. Event-Catcher with variety of advanced Actions to service projects, libraries, build processes, runtime environment of the Visual Studio, MSBuild Tools, and … ⚠ Modern Official Packages will be distributed as https://www.nuget.org/packages/vsSolutionBuildEvent Please consider upgrading 📦 https://www.nuget.org/packages/vsSBE.CI.MSBuild is no longer maintained. Open source project https://github.com/3F/vsSolutionBuildEvent

GitHub repositories (3)

Showing the top 3 popular GitHub repositories that depend on vsSolutionBuildEvent:

Repository Stars
3F/DllExport
.NET DllExport with .NET Core support (aka 3F/DllExport aka DllExport.bat)
3F/Conari
🧬 One-touch unmanaged memory, runtime dynamic use of the unmanaged native C/C++ in .NET world, related P/Invoke features, and …
3F/MvsSln
🧩 Customizable VisualStudio .sln parser, Complex support of the projects (.vcxproj, .csproj., …), Pluginable lightweight r/w handlers at runtime, and more …
Version Downloads Last updated
1.16.0 1,650 11/27/2023
1.15.0 2,423 2/2/2022
1.14.1.1 2,898 8/3/2020
1.14.0 3,204 9/26/2019