2016-04-11 32 views
0

Önceden oluşturulmuş bir etkinlik ekleyen dahili bir NuGet paketinde çalışıyorum.Bir NuGet paketinde bulunan * .prop dosyalarını nasıl yükseltirsiniz?

Bu, documentation için bir MyPackage.props dosyası içeren bir derleme klasörü belirterek yapar. Proje öncesi build olayı olmadı

<?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> 

, olay oluşturulur:

İşte sahne içerikleri dosya olduğunu. Ancak, csproj dosyasında varolan bir PerBuildEvent öğesi varsa, yeni değer doldurulmaz. Ben csproj dosyasını açmak ve elle uygun PropertyGroupElement silerseniz işe alabilirsiniz: Ancak

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

, sadece ön inşa olayın içeriğini silmek gibi, oradan eğer silmek zorunda UI, yeni değerin yazılmasına izin vermiyor.

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

... ve (daha önce bu konuyu atladınız) bunu yapmanın bir yolu yoktur: documentation belirttiği için

ben install.ps1 içinde bunu yerine kurallar bazlı yöntem kullanmak istiyorum csproj dosyası yokken?

Neler oluyor?

+0

Önceden oluşturma olayı zaten mevcutsa, bunun üzerine yazmak ister misiniz? –

cevap

1

.props'ınızda prebuild olayı kullanmamanızı öneririm çünkü projede varolan bir tanesinin üzerine yazmak istemediğinizi umuyorum. Bunun yerine

senin mantık BeforeTargets kullanarak yapı önce çalışır, böylece başka bir hedef kullanarak bakmak olabilir:

Ayrıca DependsOnTargets kullanarak bakmak istiyorum size önceden yapı gerekiyorsa ilişkilendirebilmesinden
<Target Name="MyBeforeBuild" BeforeTargets="Build"> 
    <Message Text="### MyBeforeBuild ###" Importance="high" /> 
</Target> 

Başka bir hedeften sonra çalıştırmak için olay.

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

Yapmadan önce çalıştırmak için * bir kez daha * öğeye * ihtiyaç duyduk. Ancak şimdi bunu söyledim, bizim için norm olacak. :) Bunu deneyeceğim ve rapor edeceğim. – kettch

+0

Çalıştı. Teşekkürler! – kettch