Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
MSBuild bir çözüm dosyası derlediğinde, önce dosyayı dahili olarak bir proje dosyasına çevirir ve sonra bu proje dosyasını oluşturur. Oluşturulan proje dosyası, herhangi bir hedefi tanımlamadan önce before.<solutionname>.sln.targets dosyasını ve hedefleri içeri aktardıktan sonra after.<solutionname>.sln.targets dosyasını içeri aktarabilir.
Önce ve sonra hedef dosyaları $(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\SolutionFile\ImportBefore ve $(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\SolutionFile\ImportAfter dizinlerine yüklenir.
Bu nedenle, örneğin, MyCustomizedSolution.sln derlendikten sonra özel bir günlük iletisi yazmak amacıyla aynı dizinde after.MyCustomizedSolution.sln.targets adlı aşağıdaki dosyayı oluşturarak yeni bir hedef tanımlayabilirsiniz.
<Project>
<Target Name="EmitCustomMessage" AfterTargets="Build">
<Message Importance="High" Text="The solution has completed the Build target" />
</Target>
</Project>
Çözüm derlemesi proje derlemelerinden ayrı olduğundan bu ayarlar proje derlemelerini etkilemez.
Önemli
Çözümü bu şekilde özelleştirmek, yalnızca MSBuild.exe veya dotnet build kullanılarak yapılan komut satırı derlemeleri için geçerlidir ve Visual Studio içindeki derlemeler için geçerli değildir. Bu nedenle, özelleştirmeyi çözüm düzeyine koymamak en iyisidir. Çözümdeki tüm projeleri özelleştirmek için daha iyi bir alternatif, çözüm klasöründeki Directory.Build.props ve Directory.Build.targets dosyalarını kullanmaktır.
Klasöre $(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\SolutionFile yazmak için genellikle yükseltilmiş izinler gerekir. Aynı şekilde genişletebileceğiniz birçok çözüm dosyanız varsa ancak SolutionFile klasörüne yazmak istemiyorsanız , Directory.Solution.props ve Directory.Solution.targets dosyalarını oluşturabilir ve genişletmek istediğiniz çözüm dosyalarının üzerindeki kök yola yerleştirebilirsiniz.
Directory.Solution.props, çözüm derlemesinin başlangıcında içeri aktarılır ve Directory.Solution.targets çözüm derlemesinin sonunda içeri aktarılır.
Bir çözüm dosyası oluşturduğunuzda, Directory.Build.props ve Directory.Build.targets içeri aktarılmadığından, bunun yerine Directory.Solution.props ve Directory.Solution.targets kullanmanız gerekir. İki dosya türü birbirini örtük olarak içeri aktarmaz.
Kök klasörde Directory.Solution.props veya Directory.Solution.targets dosyalarınız varsa, ancak bu klasörün altındaki bir çözümün bu dosyaları içeri aktarmasını istemiyorsanız, çözümün öncesini kullanabilirsiniz.<solutionname>.sln.targets dosyasını kullanarak özelliklerini ve ImportDirectorySolutionProps olarak ImportDirectorySolutionTargetsfalseayarlayın.
Veya $(DirectorySolutionPropsPath) ve $(DirectorySolutionTargetsPath) özelliklerini kullanarak bu dosyalar için farklı bir konum belirtebilirsiniz. Çözümlerinizin alt kümeleri belirli özellik değerlerini veya ortak hedefleri gerektiriyorsa bu yaklaşım yararlı olabilir.
Uyarı
Çözüm derlemesi, MSBuild 17.12 ve sonraki sürümlerde çözüm dosyası biçimiyle .slnx desteklenir. İkisi de daha önce.<solutionname.slnx.targets> ve öncesi.<solutionname>.sln.targets ve karşılık gelen sonra dosyaları, MSBuild 17.14 ve üzeri ile çalışır.
Derleme özelleştirme seçenekleri hakkında daha fazla bilgi için bkz. Derlemenizi özelleştirme.