通过命令行仅构建VS Setup项目

Sha*_*ron 4 c# command-line setup-project visual-studio-2010

我有一个包含许多项目和安装项目(.vdproj)的解决方案.我希望能够通过命令行构建安装项目.

我试着用

devenv /build Debug "C:\\MySolution\MySolution.sln" /project "CSharpWinApp\CSharpWinApp.vdproj" /projectconfig Debug 
Run Code Online (Sandbox Code Playgroud)

但它也构建了我的其余解决方案项目,我想避免它.我连续几次尝试过 - 没有任何项目发生变化,但它仍然构建了所有项目.我试图删除.vdproj项目依赖项,但它没有工作.我收到消息"此依赖项已由项目系统添加,无法删除".

有什么建议?

bas*_*se2 10

使用以下命令行来构建安装项目.
注意:已从Visual Studio 2012中删除对安装项目的支持.

devenv "c:\your solution file.sln"  /Project "c:\your setup project file.vdproj" /Build "Release" 
Run Code Online (Sandbox Code Playgroud)

如果你真的必须使用msbuild,请创建一个msbuild项目文件并使用Exec任务调用上面的命令行,如Hassan的答案所示.


Has*_*gha 2

您可以在安装解决方案中隔离您的设置,以确保它不会编译您的应用程序。\n为了构建您的安装项目,您可以使用 TFSBuild 2010 执行此操作,如下所示:

\n\n

首先,要自动构建 .vdproj 项目,您\xe2\x80\x99 将需要编写自己的 msbuild 文件,因为它们不是 msbuild 格式,因此 TFS Build 不知道如何处理它们。我在网上找到了一些关于如何执行此操作的好示例,但我在 2010 年更新了一些示例。如下所示:

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

感谢伦纳德·伍迪

\n