Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Build only the VS Setup project via command line

I have a solution that contains many projects and a setup project (.vdproj). I want to be able to build ONLY the setup project via command line.

I tried to use

devenv /build Debug "C:\\MySolution\MySolution.sln" /project "CSharpWinApp\CSharpWinApp.vdproj" /projectconfig Debug 

but it also built the rest of my solution projects and I want to avoid it. I tried it few times in a row - no project has changed but it stil built it all. I tried to remove the .vdproj project dependencies but it didn't work. I got the message "This dependency was added by the project system and cannot be removed".

Any suggestions?

like image 436
Sharon Avatar asked Sep 02 '12 06:09

Sharon


People also ask

How do you prepare only one project in a solution?

To build or rebuild a single project In Solution Explorer, choose or open the project. On the menu bar, choose Build, and then choose either Build ProjectName or Rebuild ProjectName.

How do I start Visual Studio from command line?

On the Start screen, press Ctrl+Tab to open the Apps list, and then press V. This brings up a list that includes all installed Visual Studio command prompts.

How do I create a project using MSBuild command line?

To build a specific target of a specific project in a solution. At the command line, type MSBuild.exe <SolutionName>. sln , where <SolutionName> corresponds to the file name of the solution that contains the target that you want to execute.

How do I run Devenv EXE?

Simply type devenv.exe from the command line. If you get a message like this, then you do not have devenv.exe in your path. >>> 'devenv.exe' is not recognized as an internal or external command, operable program or batch file. >>> To fix this simply run the batch file, vsvars32.


2 Answers

Use the following command line to build setup projects.
Note: Support for setup projects has been dropped from Visual Studio 2012.

devenv "c:\your solution file.sln"  /Project "c:\your setup project file.vdproj" /Build "Release" 

If you really have to use msbuild, create a msbuild project file and use the Exec task to call the command line above as demonstrated in Hassan's answer.

like image 190
base2 Avatar answered Sep 28 '22 16:09

base2


you can isolate your setup in a setup solution to be sure that it will not compile your application. for building your setup project you can do this with TFSBuild 2010 as follow:

First, to automate the building of .vdproj project, you’re going to need to write your own msbuild file because they are not in msbuild format and therefore TFS Build does not know what to do with them. I found some good examples on the net on how to do this, but I updated mine a little for 2010. Here it is:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> 
  <Target Name="Build"> 
    <PropertyGroup>
      <DevEnv>$(ProgramFiles)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com</DevEnv>
      <SolutionFile>$(MSBuildProjectDirectory)\MySolution.sln</SolutionFile>
      <ProjectFile>$(MSBuildProjectDirectory)\MySetupProject\MySetup.vdproj</ProjectFile>
      <Configuration>Release</Configuration>
    </PropertyGroup>
    <Exec Command="$(DevEnv)  $(SolutionFile) /Rebuild $(Configuration)  /Project  $(ProjectFile)  /ProjectConfig  $(Configuration) /Log" ContinueOnError="false" IgnoreExitCode="false" WorkingDirectory="$(MSBuildProjectDirectory)" /> 
  </Target> 
</Project>

thank to Leonard Woody

like image 42
Hassan Boutougha Avatar answered Sep 28 '22 16:09

Hassan Boutougha