Planning to Build & Deploy SSIS Projects(ISPAC) or Database Solutions (DAPAC) from Jenkins using Visual Studio Command line arguments.
Question: I know i can execute Windows batch commands but i would like to if i can execute Visual Studio Commands as well.
FYI: Planning to install Visual Studio on the Agent.
I think you will be able to do it using msbuild. If your SSIS solution can be compiled by Visual Studio, the msbuild command can do it as well (See also msbuild integration).
To utilize msbuild to create an ispac/dapac file take a look at this article. It's not Jenkins specific but that should not matter.
I am creating an MSI file by building using devenv command. I don't want to install visual studio. Is there an alternative to it?
Visual Studio is paid and I don't want to buy it.
EDIT :
I can't use MSBuild because I have .vdproj file which can't be build using MSBuild. So I use devenv.
I have setup a new server machine. I setup windows sdk, .net framework sdk, and checkout my visual studio from svn. I would like to build my application using msbuild but it keeps asking me where the "windowsx.h" file is. I do not want to setup any visual studio ide. How can I make msbuild see windows sdk include folder using console?
With a normal install of Visual Studio you get a shortcut to a Visual Studio prompt. This sets all environment variables so you can use the compiler (and other tools) from the command line. First you can try to run msbuild from such a prompt. If that works add the necessary folders to the msbuild settings.
I got vcproj file from QMake (qmake -tp vc win32.pro), and when I run it with msbuild (msbuild for VS 2010), I get the following error.
MSBUILD : error MSB4192: The project file ".\win32.vcproj" is in the ".vcproj" or ".dsp" file format
, which MSBuild cannot build directly. Please convert the project by opening it in the Visual Studio
IDE or running the conversion tool, or, for ".vcproj", use MSBuild to build the solution file conta
ining the project instead.
I'd like to run the conversion tool for getting VS2010 project file. What's the tool for it?
ADDED
Based on heavyd's answer, I got it work.
qmake -project
qmake -tp vc win32.pro
devenv /Upgrade win32.vcproj
msbuild win32.vcxproj
One can use nmake, which is simpler.
qmake -spec win32-msvc2008
nmake
The conversion tools is built into the Visual Studio IDE. You can run it by opening a Visual Studio 2010 Command Prompt (Start->Microsoft Visual Studio 2010->Visual Studio Tools) and typing:
devenv /Upgrade example.vcproj
Where example.vcproj is your VS 2005/2008 Visual C++ project file. This should upgrade you project to VS 2010 so it can be built directly with MSBuild.
When I open a Visual Studio command prompt (for example, opened with menu Start -> Programs -> Microsoft Visual Studio 2008 -> Visual Studio Tools -> Visual Studio 2008 Command Prompt), I get:
Setting environment for using Microsoft Visual Studio 2008 x86 tools.
C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE>
What kind of tools are available, and what are the most common uses of this command prompt?
It basically just sets several of the Visual Studio binary locations into the PATH environment variable for that command window instance. This means you can use all the various commands and tools without having to include the full paths.
There's a partial list of some of the tools available on MSDN in .NET Framework Tools and Tools (.NET Framework).
The Visual Studio command prompt is a convenient way to access the command line tools that ship with the .NET Framework SDK and, if installed the, Windows Platform SDK tools.
By providing the Visual Studio command prompt, Microsoft allows you to run these tools without requiring your PATH, INCLUDE, LIB and LIBPATH environment variables to contain all the additional paths to the various folders where Visual Studio and the .NET SDK are installed. Instead, these folder references are added on the fly when you start the Visual Studio command prompt allowing you to run the tools.
For example, if you open a regular command prompt you cannot run xsd.exe without changing to the directory "C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin". However, in the Visual Studio command prompt you can just type xsd.exe /?, and it works.
Please see the MSDN article .NET Framework Tools for a complete list of the tools provided with Visual Studio 2008 SP1 and details on what they do.
The Visual Studio command prompt has a few tools with it. Some tools are for repairing the install of Visual Studio. One of the tools I love using is for WCF. You type wcftestclient and you get a client to test your WCF services.
The article The Visual Studio Command Prompt has a nice explanation:
Let's look at the "Visual Studio Command Prompt" in more detail.
It appears to just set the path for you and put you in (Ta Da!) the VC
directory under Visual Studio. Not even the C# directory and certainly
not the VB directory. I guess they assume that anyone who uses this
tool is really hard core and programs directly against the hard drive
with a magnifying glass and a magnet.
What it actually does is run this DOS command. (In my case.)
%comspec% /k ""C:\Program Files\Microsoft Visual Studio
10.0\VC\vcvarsall.bat"" x86
What does vcvarsall.bat do? Well, it sets the target compiler
environment so you can compile code for a different processor.
One use seems to be to call the XML Class Generator for using XSD schemas for serialization/deserialization:
XML Class Generator for C# using XSD for deserialization
Simple example
After installing Desktop development with C++ as part of the VS Installer, it installs C++ CMake tools for Windows. Let's run this cmake.exe file!
VS Developer Command Prompt
C:\Directory>cmake --version
cmake version 3.21.21080301-MSVC_2
Windows Command Prompt
C:\Directory>cmake --version
'cmake' is not recognized as an internal or external command,
operable program or batch file.
Why example behaves as it does
The VS Developer Command Prompt knew the command cmake, yet the Windows command prompt didn't.
Its almost as if it is and isnt a path variable - Schrodingers cat, errr path!
So where is cmake.exe that the VS developer command prompt says it knows about?
VS Developer Command Prompt
C:\Directory>where cmake
C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe
Okay so that means C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\ must be a PATH variable.
Lets double check:
C:\Directory>set PATH
Path=C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;
It is, great. Now why didnt the windows command prompt find it?
Windows Command Prompt
C:\Directory>set PATH
Hmmm, I'm looking at the list and its not there.
Now Simon Steven's and MikeD's answer can be put in context:
It basically just sets several of the Visual Studio binary locations into the PATH environment variable for that command window instance. This means you can use all the various commands and tools without having to include the full paths.