All Projects → 3F → vsSolutionBuildEvent

3F / vsSolutionBuildEvent

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

Programming Languages

C#
18002 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to vsSolutionBuildEvent

Examples
An complete examples and related support for various popular projects, and more.
Stars: ✭ 22 (-66.67%)
Mutual labels:  build, msbuild, vssbe, vssolutionbuildevent, scripts
Msbuild
The Microsoft Build Engine (MSBuild) is the build platform for .NET and Visual Studio.
Stars: ✭ 4,643 (+6934.85%)
Mutual labels:  visual-studio, build, msbuild
Zeus
An Electrifying Build System
Stars: ✭ 176 (+166.67%)
Mutual labels:  build, scripts, build-automation
ILMerge-MSBuild-Task
Adds ILMerge to Visual Studio 2013/2017 or automated builds. This Task is intended to work right out of the box however, it supports a configuration file where you can control every ILMerge property including the list of assemblies to be merged.
Stars: ✭ 52 (-21.21%)
Mutual labels:  visual-studio, msbuild
setup-msbuild
A GitHub Action to facilitate configuring MSBuild in the workflow PATH for building .NET Framework applications.
Stars: ✭ 170 (+157.58%)
Mutual labels:  visual-studio, msbuild
fsharp-linting-for-vs
Visual Studio Linter for F#
Stars: ✭ 33 (-50%)
Mutual labels:  visual-studio, vsix
Community.VisualStudio.Toolkit
Making it easier to write Visual Studio extensions
Stars: ✭ 165 (+150%)
Mutual labels:  visual-studio, vsix
Vsvim
Vim Emulator Plugin for Visual Studio 2015+
Stars: ✭ 3,232 (+4796.97%)
Mutual labels:  visual-studio, vsix
OptionsSample
A Visual Studio extension sample
Stars: ✭ 14 (-78.79%)
Mutual labels:  visual-studio, vsix
Openrct2
An open source re-implementation of RollerCoaster Tycoon 2 🎢
Stars: ✭ 10,115 (+15225.76%)
Mutual labels:  visual-studio, msbuild
Vscode Powertools
A swiss army knife with lots of tools, extensions and (scriptable) enhancements for Visual Studio Code.
Stars: ✭ 150 (+127.27%)
Mutual labels:  events, scripts
Codist
A visual studio extension which enhances syntax highlighting, quick info (tooltip), navigation bar, scrollbar, display quality and brings smart tool bar to code editor.
Stars: ✭ 134 (+103.03%)
Mutual labels:  visual-studio, vsix
Unchase.OpenAPI.Connectedservice
📜 Visual Studio extension to generate OpenAPI (Swagger) web service reference.
Stars: ✭ 69 (+4.55%)
Mutual labels:  visual-studio, vsix
Dapr-Microservice-Template
A Microservice Template using Dapr.io and Kubernetes
Stars: ✭ 31 (-53.03%)
Mutual labels:  visual-studio, vsix
Ducible
A tool to make Windows builds reproducible.
Stars: ✭ 211 (+219.7%)
Mutual labels:  visual-studio, build-automation
FineCodeCoverage
Visualize unit test code coverage easily for free in Visual Studio Community Edition (and other editions too)
Stars: ✭ 391 (+492.42%)
Mutual labels:  visual-studio, vsix
UnityAssemblies
Simple, forward-compatible references to ANY Unity DLL on ANY platform.
Stars: ✭ 65 (-1.52%)
Mutual labels:  visual-studio, msbuild
EmptyLicensesLicx
Easy continuous integration of apps using third-party controls that rely on licenses.licx files
Stars: ✭ 57 (-13.64%)
Mutual labels:  visual-studio, msbuild
Unchase.Odata.Connectedservice
📜 A Visual Studio extension for connecting to OData services with generating client-side C# proxy-classes
Stars: ✭ 39 (-40.91%)
Mutual labels:  visual-studio, vsix
Improvexamarinbuildtimes
Tips and tricks on how to speed up the time it takes to compile a Xamarin app
Stars: ✭ 180 (+172.73%)
Mutual labels:  visual-studio, build

vsSolutionBuildEvent

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

🎛 Event-Catcher with variety of advanced Actions

Event model

to service projects, libraries, build processes, runtime environment of the Visual Studio, MSBuild Tools, and …

Copyright (c) 2013-2022  Denis Kuzmin <x-3F@outlook.com> github/3F

@ LGPLv3

Download

Build status - master VSIX nuget package API

Build history

MvsSln GetNuTool SobaScript E-MSBuild

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.

Scheme of vsSolutionBuildEvent projects

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>

    <!--
        Additional properties:
            $(ActionName)
            $(BuildType)
            $(EventType)
            $(SupportMSBuild)
            $(SupportSBEScripts)
            $(SolutionActiveCfg)
            $(StartupProject)
    -->
</Project>

CommandEvent (DTE)

You can also use this to catch all command from VS IDE. Samples:

$(lcGuid = #[DTE events.LastCommand.Guid])
$(lcId   = #[DTE events.LastCommand.Id])

#[($(lcGuid) == "{1496A755-94DE-11D0-8C3F-00C04FC2AAE2}" && $(lcId) == 1627) {
    #[File scall("notepad", "#[var log]", 30)]
}]

Automatic Version Numbering

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

Various environments

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

...

Solution-wide Build events

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

Stop build on first error

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

Wiki

Wiki - Contains help for work with plugins, basic examples, syntax, information for develop, and lot of other...

Feel free to improve any our pages. Click [Edit] button or Start new here.

Questions / Bugs / Suggestions / Source Code

Welcome:

Screenshots

Overview.VS2013

[. . .]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].