Comments (7)
Original comment by Denis Kuzmin (Bitbucket: 3F, GitHub: 3F):
All this features now available with v0.11
Documentation for this, you can see in wiki/CI:
- CI.MSBuild - for work through msbuild.exe
- [Devenv Command-Line](https://bitbucket.org/3F/vssolutionbuildevent/wiki/CI/Devenv Command-Line) - for work through devenv of the Visual Studio
btw.,
later I found this... yeah., but I did it :) all working -_*
p.s. for everyone who reads - to comment/vote this (MS Connect Issue #1075033) if you want to see supporting the Command-Line mode in VS2015 and older
from vssolutionbuildevent.
Original comment by Denis Kuzmin (Bitbucket: 3F, GitHub: 3F):
tested build of the vsSolutionBuildEvent with TeamCity & AppVeyor --> see commit 1cdb39b
AppVeyor:
#!log
Build started
git clone -q --branch=ci https://bitbucket.org/3F/ci_cfg_vssbe.git C:\projects\ci-cfg-vssbe
git checkout -qf 4fd802c4f4db54be98ee533e0f9c6ad85ca42867
nuget restore vsSolutionBuildEvent_2013.sln & "C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe" "vsSolutionBuildEvent_2013.sln" /m /verbosity:detailed /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" /l:"C:\projects\ci-cfg-vssbe\external\bin\CI.MSBuild.dll"
Installing 'Moq 4.2.1409.1722'.
Installing 'AvalonEdit 5.0.2'.
Installing 'UDE.CSharp 1.1.0'.
Installing 'Newtonsoft.Json 6.0.6'.
Installing 'NLog 3.1.0.0'.
Successfully installed 'UDE.CSharp 1.1.0'.
Successfully installed 'Moq 4.2.1409.1722'.
Successfully installed 'NLog 3.1.0.0'.
Successfully installed 'AvalonEdit 5.0.2'.
Successfully installed 'Newtonsoft.Json 6.0.6'.
Microsoft (R) Build Engine version 12.0.31101.0
[Microsoft .NET Framework, version 4.0.30319.34209]
Copyright (C) Microsoft Corporation. All rights reserved.
============================================================
[[ vsSolutionBuildEvent CI.MSBuild ]] Welcomes You!
============================================================
Feedback: [email protected]
____________________________________________________________
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
Build started 1/22/2015 8:51:21 PM.
1/22/2015 8:51:33 PM [WARN]: Context of build action: Disabled for current Environment.
Library: loaded from 'C:\projects\ci-cfg-vssbe\external\bin\' :: v0.10.1.287804 [89128de] /'local_ci_step2':187
1/22/2015 8:51:35 PM [INFO]: Loaded settings (v0.9): 'C:\projects\ci-cfg-vssbe\'
Ready:
1 / 1] Pre-Build :: [!]
0 / 1] Post-Build :: [X]
0 / 1] Cancel-Build :: [X]
0 / 1] Warnings-Build :: [X]
0 / 1] Errors-Build :: [X]
0 / 1] Output-Build :: [X]
0 / 1] Transmitter :: [X]
---
1/22/2015 8:51:35 PM [INFO]: vsSBE tool pane: View -> Other Windows -> Solution Build-Events
1/22/2015 8:51:35 PM [INFO]: Launching action 'Updating version' :: Configuration - 'Debug|AnyCPU'
1/22/2015 8:51:35 PM [INFO]: Use Script Mode
1/22/2015 8:51:41 PM [INFO]: [Pre] finished SBE: Updating version
Project "C:\projects\ci-cfg-vssbe\vsSolutionBuildEvent_2013.sln" on node 1 (default targets).
Building with tools version "2.0".
Target "ValidateSolutionConfiguration" in file "C:\projects\ci-cfg-vssbe\vsSolutionBuildEvent_2013.sln.metaproj" from project "C:\projects\ci-cfg-vssbe\vsSolutionBuildEvent_2013.sln" (entry point):
...
Build succeeded.
"C:\projects\ci-cfg-vssbe\vsSolutionBuildEvent_2013.sln" (default target) (1) ->
"C:\projects\ci-cfg-vssbe\vsSolutionBuildEventTest\vsSolutionBuildEventTest_2013.csproj" (default target) (7) ->
(ResolveAssemblyReferences target) ->
C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1697,5): warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed. [C:\projects\ci-cfg-vssbe\vsSolutionBuildEventTest\vsSolutionBuildEventTest_2013.csproj]
1 Warning(s)
0 Error(s)
Time Elapsed 00:01:11.40
Discovering tests...OK
vstest.console /logger:Appveyor "C:\projects\ci-cfg-vssbe\vsSolutionBuildEventTest\bin\Debug\vsSolutionBuildEventTest.dll"
Microsoft (R) Test Execution Command Line Tool Version 12.0.30723.0
Copyright (c) Microsoft Corporation. All rights reserved.
Starting test execution, please wait...
...
Total tests: 233. Passed: 233. Failed: 0. Skipped: 0.
Test Run Successful.
Test execution time: 6.6070 Seconds
Build success
TODO:
- warning MSB3277: Found conflicts between different versions of the same dependent assembly that could not be resolved
- VSSDK 2010 for build on .NET 4.0
from vssolutionbuildevent.
Original comment by Denis Kuzmin (Bitbucket: 3F, GitHub: 3F):
For CI support we decided to perform implementation with the MSBuild loggers for events base
/draft 4f601bb
I think it's best variant:
- Firstly, this model of events is similar(not the same, but..) with VisualStudio.Shell.Interop/EnvDTE, and i already implemented basic events... see draft
- * moreover, we can use additional elements with msbuild building etc.
- Secondly, we can use a few loggers if it's already used, e.g. AppVeyor used for example:
#!bash
"C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe" "<file>.sln" /m /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll"
flexibility for any situation...
however, later i'll also add the simple utility for additional support
What's left to do:
- Completely implementation of events model for CI.MSBuild (see TODO in commit)
- I also have plans for moving this project on some CI server - it's also the best variant for test and support this features. Therefore, generally this features should be after successfully moved.
- * Note: CI for this project a little harder, because this project also used the Visual Studio SDK and self assembly, however i think it's possible :) time will tell
from vssolutionbuildevent.
Original comment by Denis Kuzmin (Bitbucket: 3F, GitHub: 3F):
Command-Line has been implemented in 1727b22
should work on VS2010, VS2012 and VS2013, for example:
#!bash
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE>devenv "D:\tmp\ForTestApp\ForTestApp.sln" /Rebuild Release
============================================================
[[ vsSolutionBuildEvent Devenv Command-Line ]] Welcomes You!
============================================================
Feedback: [email protected]
____________________________________________________________
08.01.2015 20:20:24 [TRACE]: init: 'net.r_eg.vsSBE.SBEScripts.Components.CommentComponent'
08.01.2015 20:20:24 [TRACE]: init: 'net.r_eg.vsSBE.SBEScripts.Components.ConditionComponent'
08.01.2015 20:20:24 [TRACE]: init: 'net.r_eg.vsSBE.SBEScripts.Components.UserVariableComponent'
08.01.2015 20:20:24 [TRACE]: init: 'net.r_eg.vsSBE.SBEScripts.Components.OWPComponent'
08.01.2015 20:20:24 [TRACE]: init: 'net.r_eg.vsSBE.SBEScripts.Components.DTEComponent'
08.01.2015 20:20:24 [TRACE]: init: 'net.r_eg.vsSBE.SBEScripts.Components.InternalComponent'
08.01.2015 20:20:24 [TRACE]: init: 'net.r_eg.vsSBE.SBEScripts.Components.BuildComponent'
08.01.2015 20:20:24 [TRACE]: init: 'net.r_eg.vsSBE.SBEScripts.Components.FileComponent'
Library: loaded from 'C:\Users\reg\AppData\Local\Microsoft\VisualStudio\10.0\Extensions\jnhdeh52.ukq\' :: v0.10.0.267410 [6db2698] /'local_console':196
08.01.2015 20:20:26 [INFO]: Loaded settings (v0.9): 'D:\tmp\ForTestApp\'
Ready:
08.01.2015 20:20:26 [INFO]: Launching action 'Test cmd' :: Configuration - 'Release|x86'
08.01.2015 20:20:26 [INFO]: Use File Mode
08.01.2015 20:20:26 [INFO]: Prepared command: 'calc.exe'
08.01.2015 20:20:28 [INFO]: [Pre] finished SBE: Test cmd
08.01.2015 20:20:28 [TRACE]: onProject: 'ForTestApp':Before == True
------ Rebuild All started: Project: ForTestApp, Configuration: Release x86 ------
... build log ....
Build succeeded.
Time Elapsed 00:00:00.35
08.01.2015 20:20:29 [TRACE]: onProject: 'ForTestApp':After == True
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
08.01.2015 20:20:29 [DEBUG]: Reseted all User-variables
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE>
Important:
- the Add-in calls all logic from the vsSolutionBuildEvent with API (for example - IEvent), therefore for working need a vsSolutionBuildEvent library
- It's not end implementation, it means what can be a some changes before the new public release!
For Continuous Integration - should be other special implementation, later
/For developers, you can already test and work with 1727b22
from vssolutionbuildevent.
Original comment by Denis Kuzmin (Bitbucket: 3F, GitHub: 3F):
reported on MS Connect Issue #1075033
from vssolutionbuildevent.
Original comment by Denis Kuzmin (Bitbucket: 3F, GitHub: 3F):
it's possible with Add-in for devenv.com,
today i checked this.. should all work
However! add-ins are deprecated in Visual Studio 2013 and removed in 14CTP (also in VS2015 Preview)
i.e. i can provide a some "bridge" for our lib, but this should work only for 2010, 2012 and 2013
-_-
special for CI... later i can also provide additional wrapper for emulating events with additional utility - this is so because most ci servers includes only assembling with msbuild (our lib works with VS, but it's also possible)
maybe as wrapper to the msbuild... need to think
from vssolutionbuildevent.
Original comment by Denis Kuzmin (Bitbucket: 3F, GitHub: 3F):
Question already asked in Q/A
It's probably maybe work, let me explain...
All extensions can be loaded with Microsoft.VisualStudio.Shell.ProvideAutoLoadAttribute
for example, vsSBE loaded as:
// To be automatically loaded when a specified UI context is active
[ProvideAutoLoad(UIContextGuids80.SolutionExists)]
All available fields of UIContextGuids80:
CodeWindow = "{8FE2DF1D-E0DA-4EBE-9D5C-415D40E487B5}"
DataSourceWindowAutoVisible = "{2E78870D-AC7C-4460-A4A1-3FE37D00EF81}"
DataSourceWindowSupported = "{95C314C4-660B-4627-9F82-1BAF1C764BBF}"
Debugging = "{ADFC4E61-0397-11D1-9F4E-00A0C911004F}"
DesignMode = "{ADFC4E63-0397-11D1-9F4E-00A0C911004F}"
Dragging = "{B706F393-2E5B-49E7-9E2E-B1825F639B63}"
EmptySolution = "{ADFC4E65-0397-11D1-9F4E-00A0C911004F}"
FullScreenMode = "{ADFC4E62-0397-11D1-9F4E-00A0C911004F}"
NoSolution = "{ADFC4E64-0397-11D1-9F4E-00A0C911004F}"
NotBuildingAndNotDebugging = "{48EA4A80-F14E-4107-88FA-8D0016F30B9C}"
SolutionBuilding = "{ADFC4E60-0397-11D1-9F4E-00A0C911004F}"
SolutionExists = "{F1536EF8-92EC-443C-9ED7-FDADF150DA82}"
SolutionExistsAndNotBuildingAndNotDebugging = "{D0E4DEEC-1B53-4cda-8559-D454583AD23B}"
SolutionHasMultipleProjects = "{93694FA0-0397-11D1-9F4E-00A0C911004F}"
SolutionHasSingleProject = "{ADFC4E66-0397-11D1-9F4E-00A0C911004F}"
SolutionOrProjectUpgrading = "{EF4F870B-7B85-4F29-9D15-CE1ABFBE733B}"
ToolboxInitialized = "{DC5DB425-F0FD-4403-96A1-F475CDBA9EE0}"
WindowsFormsDesigner = "{BA09E2AF-9DF2-4068-B2F0-4C7E5CC19E2F}"
So, i see the next - SolutionExists has only variant for work with events what is invoked before of all in comparison with other... (note: it's only contains the constants with some GUID, so maybe there are other guid's - internal, this should be worked by subscription or similar for calling the all of registered packages)
I remember i also tested with the NoSolution ({ADFC4E64-0397-11D1-9F4E-00A0C911004F}
) & SolutionBuilding ({ADFC4E60-0397-11D1-9F4E-00A0C911004F}
) (when replying in Q/A), but result is similar..
What interesting:
if you can put another extension with the same GUID in directory
#!basht#
\Microsoft Visual Studio <Number>.0\Common7\IDE\Extensions\
(for example, just copy vsSBE in other catalog)
and execute next command:
#!bash
devenv "D:/tmp/Project.sln" /build Release /Log d:\tmp\cmdlog.xsl
you can watch like this:
#!bash
Extension will not be loaded because an extension with the same ID '94ecd13f-15f3-4f51-9afd-17f0275c6266' is already loaded at ....Common7\IDE\Extensions\netreg\vsSolutionBuildEvent\...
C:\Users\<user>\AppData\Local\Microsoft\VisualStudio\<Number>.0\Extensions\vw1nnqlu.vyy\
where vw1nnqlu.vyy - is a dir with some hashcode as name
SO! plugin realy has loaded, however not activated... i mean not has instance of vsSolutionBuildEventPackage
above in log he is loaded as
#!bash
88 Scanning pkgdef file
\AppData\Local\Microsoft\VisualStudio\<num>\Extensions\t12epaqi.0jb\vsSolutionBuildEvent.pkgdef VisualStudio
89 Importing pkgdef file
\AppData\Local\Microsoft\VisualStudio\<num>\Extensions\t12epaqi.0jb\vsSolutionBuildEvent.pkgdef VisualStudio
It means, instance should be only if we have a some specific context! some guid ?
known when our extension is loaded and activated:
#!bash
any commands who will activate IDE:
devenv /Command "File.Exit"
devenv "<Project.sln>" /Runexit
...
or! simple:
devenv.com /? yes, it works...
Possible or not ? hmm., still no information - this feature still not yet watched! You or any probably help me to find any documentation, and i'll implement this if it's possible - I mean, if it's not a some restriction from MS (again)
another details about this, see Q/A - using extension in command line mode (devenv.exe)
I accepted this Issue, however need a more information about this...
from vssolutionbuildevent.
Related Issues (20)
- Interrupt a build with pre-build event script HOT 3
- 7z & amd64\msbuild.exe: Can not load 7-zip library or internal COM error HOT 1
- Update support of VS2017 HOT 4
- ProjectGuid & SDK-based projects HOT 1
- Isolated environment. Possible incorrect projects for MSBuild Properties ~ $(TargetFrameworkVersion:Metadata) HOT 2
- Pre-Build error: An equivalent project (a project with the same global properties and tools version) is already present in the project collection HOT 6
- 'Object reference not set to an instance of an object.' HOT 5
- Visual Studio 2019 supprt HOT 6
- .vssbe configuration via HJSON
- Our script engines into the new independent projects
- installer fails if Atmel studio is installed on computer HOT 4
- IsolatedEnv and empty SolutionConfigurationPlatforms: "escapedValue" cannot be null
- NuGet integration - Docu HOT 6
- 7z: relative paths like ..\Dir for input files lead to wrong filename in zip file HOT 2
- MSBuild Properties not changing according to solution configuration HOT 1
- Can't use MSBuild in Targets Mode HOT 2
- Visual Studion 2022 support HOT 7
- Visual Studio Setup Project error HOT 2
- Possible to set settings default to all project? HOT 4
- Extension "Progress Telerik UI for WPF Extension" causes MSBuild properties to be *undefined* HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from vssolutionbuildevent.