1

複数の vdproj ファイルを含むソリューションがあります。build.proj ファイルにアイテム グループを作成しました。

<ItemGroup>
<SetupProjectFiles Include="$(MSBuildProjectDirectory\**\*.vdproj">
</SetupProjectFiles>

今、私はそれらのそれぞれで devenv.exe を呼び出したいですか?

<Exec Command="devenv.exe %(SetupProjectFiles)"></Exec>

うまくいきません...誰かポインタを教えてください。

4

1 に答える 1

5

再確認する価値のあることがいくつかあります。このリストを確認し、実際の例については以下のコード スニペットを参照してください。

  1. vdproj ファイルへのパスが正しいことを確認してください。どの vdproj ファイルが含まれているかを確認できるように、各ファイル パスのログにメッセージを書き込んでみてください。

  2. vdproj がソリューションの目的のビルド構成に含まれていることを確認してください。「デバッグ」構成をビルドしている場合は、「デバッグ」構成の組み合わせについて、ソリューションのビルド構成マネージャーで vdproj がチェックされていることを確認してください。これはグローバルに設定することも、各SetupProjectFilesアイテムのメタデータで指定された vdproj ごとに設定することもできます (この例については、以下のスニペットを参照してください)。

  3. 完全な devenv.exe パスを使用してください。これを支援するために環境変数を使用できます。

  4. MSBuild Exec タスクの構文devenv.exe の構文が正しいことを確認します。たとえば、/buildスイッチを使用し&quot;たり、スペース文字でパスを囲んだりします。


編集:コードの誤字を修正


<ItemGroup>
  <SetupProjectFiles Include="$(MSBuildProjectDirectory)\**\*.vdproj">
    <Configuration>Release</Configuration>
  </SetupProjectFiles>
</ItemGroup>

<PropertyGroup>
  <!-- VS110COMNTOOLS is for VS2012. VS100COMNTOOLS is for VS 2010. VS90COMNTOOLS is for VS2008 -->
  <DevEnvLocation>$(VS100COMNTOOLS)..\IDE\devenv.exe</DevEnvLocation>
</PropertyGroup>

<Message Text="vdproj file:  %(SetupProjectFiles.FullPath)" />

<Exec Command="&quot;$(DevEnvLocation)&quot; &quot;%(SetupProjectFiles.FullPath)&quot; /build &quot;%(SetupProjectFiles.Configuration)&quot;" />
于 2013-04-03T20:07:18.470 に答える