2011-06-06 5 views

答えて

3

プロパティを設定するために独自のターゲットを配線することができます。プロパティを設定して、動作をオフにしたり、必要な操作を行うことができます。以下のプロジェクトの修正では、既存のPublishターゲットの依存関係を自分の前後のターゲットと結びつける方法を示しています。 beforeターゲットはプロパティを設定します。次に、$(DefineConstants)プロパティ内でDEBUGが定義されているプロジェクトの既存の部分で、DEBUGを定数リストに追加するかどうかを条件付きで決定します。出版する。

<PropertyGroup> 
    <PublishDependsOn>MyBeforePublish;$(PublishDependsOn);MyAfterPublish</PublishDependsOn> 
</PropertyGroup> 

<Target Name="MyBeforePublish"> 
    <PropertyGroup> 
     <DetectPublishBuild>true</DetectPublishBuild> 
    </PropertyGroup> 
</Target> 
<Target Name="MyAfterPublish"> 
    <PropertyGroup> 
     <DetectPublishBuild>false</DetectPublishBuild> 
    </PropertyGroup> 
</Target> 

... 

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> 
    <PlatformTarget>x86</PlatformTarget> 
    <DebugSymbols>true</DebugSymbols> 
    <DebugType>full</DebugType> 
    <Optimize>false</Optimize> 
    <OutputPath>bin\Debug\</OutputPath> 
    <DefineConstants>TRACE</DefineConstants> 
    <DefineConstants 
     Condition="'$(DetectPublishBuild)' != 'true'" 
     >DEBUG;$(DefineConstants)</DefineConstants> 
    <ErrorReport>prompt</ErrorReport> 
    <WarningLevel>4</WarningLevel> 
</PropertyGroup> 
+0

リサイズ、ウェブサイト、およびwebアプリケーションプロジェクトの定義された 'PublishDependsOn'財産ですか? – Maslow

1
<Choose> 
     <When Condition="'$(BuildType)' == 'publish'"> 
     <PropertyGroup> 
      <DefineConstants>Release</DefineConstants> 
     </PropertyGroup> 
     </When>  
</Choose> 

あなたにはそこリリース以外の他の値が必要な場合があります。しかし、これはうまくいくはずです。

ここでは、実際に公開、デバッグ、リリースしています。私たちはリリースからコピーすることでパブリッシュを作成したので、その中にすべての設定があります。

1
<Copy SourceFiles="Web.Base.config" DestinationFiles="Web.config" OverwriteReadOnlyFiles="True" Condition="!('$(PublishProfileName)' == '' And '$(WebPublishProfileFile)' == '')" /> 

これは、ビルドでPublishProfileフラグが使用されている場合にのみ、 "コピー"を実行します。

http://sedodream.com/2013/01/06/commandlinewebprojectpublishing.aspx

関連する問題