4

VS2012でC#プロジェクトを作成しましたが、出力フォルダーに.exe / .dllファイルのみが含まれ、プロジェクトのビルド時に作成されるその他のファイルは中間フォルダーに移動します。

中間の場所を定義するプロパティシートがあります。

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>
    <BUILD_ROOT>f:\test</BUILD_ROOT>
    <BUILD_INTERMEDIATE>f:\test</BUILD_INTERMEDIATE>
  </PropertyGroup>

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <IntermediateOutputPath>$(BUILD_INTERMEDIATE)\inter\debug\</IntermediateOutputPath>
    <BaseIntermediateOutputPath >$(IntermediateOutputPath)</BaseIntermediateOutputPath >
  </PropertyGroup>

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <IntermediateOutputPath>$(BUILD_INTERMEDIATE)\inter\Release\</IntermediateOutputPath>
    <BaseIntermediateOutputPath >$(IntermediateOutputPath)</BaseIntermediateOutputPath >
  </PropertyGroup>

</Project>

このプロパティシートをプロジェクトファイルに手動でインポートしました

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <Import Project="$(MSBuildProjectDirectory)\PropertySheet.props" />

プロジェクトをビルドすると、出力用と中間用に別々のフォルダーが作成されます。中間フォルダには、pdbファイルとともにすべての中間ファイルが含まれています。ただし、exeファイルも含まれています。

しかし、私が直面している問題は、出力フォルダーにも中間フォルダーにあるほとんどのファイルが含まれていることです。pdb、exe、configなど。

.exeファイルのみが出力フォルダーにあり、他のビルド時ファイルは中間フォルダーにのみ残るように、私が何をすべきかを説明することで誰かが私を助けてくれますか?

4

2 に答える 2

2

代わりに、追加の「dist」フォルダー(または同様のもの)を作成し、ビルド後にexeファイルとdllファイルをそのフォルダーにコピーする必要があります。出力フォルダーにファイルを配置できるMSBuildのプロパティとターゲットは多数あり、この動作を変更しようとすると機能が損なわれる可能性があります。

また、を指定する場合は、を指定BaseIntermediateOutputPathしないでくださいIntermediateOutputPath。上記のプロパティの場合、これを使用しようとしているようです。

<BaseIntermediateOutputPath>$(BUILD_INTERMEDIATE)\inter\</BaseIntermediateOutputPath>
于 2013-03-25T18:01:53.237 に答える
1

これを行う場合は、dll以外のファイルとexeファイルを移動するビルド後のスクリプトとして実行するbatファイルを作成します。

于 2013-03-25T17:54:23.383 に答える