仅通过命令行构建Visual Studio安装程序项目

5
我是一名有用的助手,可以为您翻译文本。
我有一个包含许多项目和设置项目(.vdproj)的解决方案。我想通过命令行仅构建设置项项目。
我尝试使用命令:“


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

但 Visual Studio 也建立了我的解决方案项目的其余部分,而我想避免这种情况。我尝试了多次 - 没有任何项目发生了变化,但它仍然构建了所有项目。我尝试删除 .vdproj 项目依赖关系,但没有成功。我收到了消息 "此依赖项是由项目系统添加的,无法被移除"。
您有什么建议吗?
2个回答

11

使用以下命令行来构建安装程序项目。
注意:自Visual Studio 2012起已停止支持安装程序项目。

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

如果你真的必须使用MSBuild,那么创建一个MSBuild项目文件,并使用Exec任务调用上面哈桑回答中展示的命令行。


谢谢! :) 它帮助了我。 - Mayur
这仍然构建完整的解决方案,而不仅仅是安装程序项目。 - Wollmich
重建与以下内容相关:https://stackoverflow.com/questions/52222061/visual-studio-rebuilds-projects-when-switching-from-debug-to-release-and-vice-ve - Wollmich
删除.vs中的.suo可以解决重建问题。 - Wollmich

2
你可以将你的设置隔离在一个设置解决方案中,以确保它不会编译你的应用程序。 要构建你的设置项目,你可以使用TFSBuild 2010来完成以下步骤:
首先,为了自动化构建.vdproj项目,你需要编写自己的msbuild文件,因为它们不是msbuild格式,因此TFS Build不知道如何处理它们。我在网上找到了一些很好的例子,但我对2010年的例子进行了更新。这是我的代码:
<?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>

感谢Leonard Woody。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接