Это здорово. Я хотел, чтобы файл целей был в проекте, поэтому я сделал это, чтобы получить $ TargetsPath в установке: $ fileInfo = new-object -typename System.IO.FileInfo -ArgumentList $ Project.FullName; $ projectDirectory = $ fileInfo.DirectoryName; $ TargetsFile = 'solutionBinFilesForAdmincenter.targets; $ TargetsPath = $ projectDirectory | Join-Path -ChildPath $ TargetsFile
у создать пакет nuget, который добавляет шаг BeforeBuild к моему csproj, используя пользовательскую задачу MSBuild, которую я создал. В идеале я хочу:
Добавьте новую цель в файл csproj (MyCustomBeforeBuildTarget)Добавьте цель BeforeBuild, если ее там еще нетОтредактируйте атрибут BeforeBuild DependsOnTargets, чтобы включить мою пользовательскую цельПоэтому после установки мой csproj должен иметь следующее:
<Target Name="MyCustomBeforeBuildTarget" Condition="SomeCondition">
<MyCustomTask />
</Target>
<Target Name="BeforeBuild" DependsOnTargets="MyCustomBeforeBuildTarget">
</Target>
Также было бы неплохо, чтобы при удалении моего пакета пользовательская цель тоже исчезала, хотя я добавил условие, которое должно заставить ее игнорировать цель, если моя библиотека пользовательских задач отсутствует.
Какой самый простой скрипт установки Powershell nuget, который я могу написать, добавит мою собственную цель? У меня такое ощущение, что скрипты PowerShellВот может быть частью решения, но у меня недостаточно опыта PowerShell, чтобы знать, как на самом деле использовать их для редактирования csproj.