Bakıldığında Microsoft.Bcl.Build.targets
, bir dizi proje yapılandırma hedefi vardır, örneğin:
EnsureBindingRedirects
- Bağlama yönlendirmeleri için hangi referansların etkinleştirildiğini belirleyin ve app.config'i bunlarla güncelleyin
BclBuildValidateNugetPackageReferences
- Bu hedef, mevcut projede yüklü olan herhangi bir Nuget paketinin de mevcut projede bağımlılıklarının (geçişli bağımlılıklar) kurulu olduğunu doğrular.
Bu değerlendirmeye dayanarak, NuGet bağımlılıklarını eklerken / kaldırırken / güncellerken bu işlevselliğin yalnızca bir geliştirme ortamında gerekli olduğuna karar verdim; ve sorunlara neden olduğu CI ortamında göz ardı edilebileceğini.
Bu yüzden bağımlılığı * .csproj dosyalarımda tutmak istiyorum, ancak bir CI derlemesi çalıştırırken bunu göz ardı ediyorum. Bunu, bu bloğu içeren bir yapı ortamı hedefleri dosyasına (ör. Builder.targets) koşullu içe aktarma ekleyerek yaptım:
<PropertyGroup>
<BclBuildImported>Ignore</BclBuildImported>
</PropertyGroup>
Bu, bir CI ortamındaki hedefleri göz ardı etme, ancak bunları bir geliştirme ortamında etkinleştirme gibi net etkiye sahiptir. Bunu bir haftadan fazla süredir çalıştırıyorum ve şu ana kadar sorun yok ...
Yine de, bu paket hakkında bunu yapmanın kötü bir fikir olduğunu gösteren daha iyi bilgiye sahip olup olmadığını bilmek isterim. Şimdiye kadar bunun iyi bir fikir olduğuna inanıyorum.
2018-02-01'i düzenleyin:
Yoksay parametresinin Microsoft.Bcl.Build.targets
mantığı atlamak için komut satırından da geçirilebileceğini unutmayın :
msbuild (targets, etc) /p:BclBuildImported=Ignore
So I want to keep the dependency in my *.csproj files, but ignore it. I did that by adding a conditional import on a build environment targets file (eg builder.targets)
, detaylandırır mısınız?