5

多くのプロジェクトとセットアップ プロジェクト (.vdproj) を含むソリューションがあります。コマンド ライン経由でセットアップ プロジェクトのみをビルドできるようにしたいと考えています。

使ってみた

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

しかし、それは私のソリューションプロジェクトの残りの部分も構築したので、避けたいと思っています。私はそれを数回続けて試しました - プロジェクトは変更されていませんが、それでもすべてをビルドしました。.vdproj プロジェクトの依存関係を削除しようとしましたが、うまくいきませんでした。「この依存関係はプロジェクト システムによって追加されたため、削除できません」というメッセージが表示されました。

助言がありますか?

4

2 に答える 2

11

次のコマンド ラインを使用して、セットアップ プロジェクトをビルドします。
注: セットアップ プロジェクトのサポートは、Visual Studio 2012 から削除されました。

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

本当に msbuild を使用する必要がある場合は msbuild プロジェクト ファイルを作成し、Exec タスクを使用して、Hassan の回答に示されているように上記のコマンド ラインを呼び出します。

于 2013-09-20T13:32:02.933 に答える
2

セットアップ ソリューションでセットアップを分離して、アプリケーションがコンパイルされないようにすることができます。セットアップ プロジェクトをビルドするには、次のように TFSBuild 2010 でこれを行うことができます。

まず、.vdproj プロジェクトのビルドを自動化するには、独自の msbuild ファイルを作成する必要があります。これは、msbuild 形式ではないため、TFS ビルドはそれらをどう処理するかを認識していないためです。これを行う方法についてネットでいくつかの良い例を見つけましたが、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>

レナード・ウッディに感謝

于 2012-09-02T07:01:22.560 に答える