我在VS2012上創建了一個C#項目,我希望輸出文件夾只包含.exe/.dll文件,並且在構建項目時創建的任何其他文件都將轉到中間文件夾。如何確保只有* .exe或* .dll文件進入輸出文件夾,並且其他任何構建文件都會進入中間文件夾VS2012?
我有一個屬性表,定義中間位置。
<?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>
我進口這個屬性表到我的項目文件manuallly
<?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,配置等
任何人都可以請解釋我應該這樣做,只有.exe文件將在輸出文件夾和任何其他生成時間文件將只停留在中間文件夾?
感謝這個想法。實際上,我將一個大型項目從VS2005轉換爲VS 2012.在VS2005上,我確實設置了單獨的中間並輸出文件夾,只有EXE和DLL用於轉到輸出文件夾。您的建議將解決我的問題,但我仍然有問題,什麼是VS2012的變化,導致所有的構建文件轉到中間和輸出文件夾?? – Shahed 2013-03-25 18:19:18
@Shahed這裏沒有簡單的答案。標記爲「複製到輸出文件夾」的文件將出現在您的輸出目錄中,以及許多通常被認爲是最終構建輸出的一部分的文件(例如,pdb和配置文件)。 – 2013-03-25 18:27:35