2016-04-11 4 views
0

私は、ビルド前のイベントを追加する内部NuGetパッケージを開発中です。NuGetパッケージに含まれている* .propsをどのようにアップグレードしますか?

それはdocumentationあたりMyPackage.propsファイルを含むビルドフォルダを指定することでこれを行います。プロジェクトがビルド前のイベントがありませんでした

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
     <PreBuildEvent>Some commands go here</PreBuildEvent> 
    </PropertyGroup> 
</Project> 

場合は、イベントが作成されます。

はここで小道具のコンテンツファイルです。ただし、csprojファイルに既存のPerBuildEvent要素がある場合、新しい値は入力されません。私はcsprojファイルを開き、手動で適切なPropertyGroupElementを削除した場合、私はそれが仕事を得ることができます:

<PropertyGroup> 
    <PreBuildEvent>Some command line stuff</PreBuildEvent> 
</PropertyGroup> 

はしかし、私はちょうどにビルド前イベントの内容を削除するよう、そこからならば削除する必要がありますUIでは、新しい値を書き込むことはできません。

[NuGet 3.x] This script will not be executed in projects managed by project.json 

...と(私は前にこの部分を残し)これを行う方法があります:documentationが指定されているため

私はinstall.ps1でこれを行う上での規則ベースの方法を使用したいですcsprojファイルがないときは?

何が起こっているのですか?

+0

事前ビルドイベントが既に存在する場合は、上書きしますか? –

答えて

1

私は私はあなたがプロジェクトに既存のものを上書きしたくないことを期待するので、あなたの.propsで事前に作成イベントを使用していないお勧めします。

あなたのロジックがBeforeTargetsを使用して、ビルド前に実行されるように、代わりに別のターゲットを使用した時に見ることができる:あなたがあなたの前のビルドが必要な場合

<Target Name="MyBeforeBuild" BeforeTargets="Build"> 
    <Message Text="### MyBeforeBuild ###" Importance="high" /> 
</Target> 

あなたはまたDependsOnTargetsを使用して見てみたいことは、属性他のターゲットの後に実行するイベント。

<Target Name="MyTarget" DependsOnTargets="$(CoreCompileDependsOn)"> 
</Target> 
+0

ビルド前に複数のアイテムを実行する必要はありませんでした。しかし、今私が言ったように、それは私たちのために標準になるでしょう。 :)私はこれを試して、報告して戻ってきます。 – kettch

+0

それは働いた。ありがとう! – kettch

関連する問題