У меня есть несколько проектов в моем решении, у них всех установлен один и тот же пакет NuGet.Я установил этот пакет NuGet с помощью параметра «Управление пакетами Nuget для решения» в моем меню.
Теперь этот конкретный пакет NuGet содержит файл .targets в папке сборки, который импортирует некоторые файлы в сборку.
Когда я перестраиваю свое решение, эти файлы копируются только для проекта верхнего уровня.Другие проекты не получают файлы, скопированные в их папку сборки.Это вызывает у меня головную боль, потому что все проекты нуждаются в этих файлах в своей папке сборки.
Когда я просматриваю свои файлы .csproject, я вижу следующую разницу:
Проект 1
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\NuGetTester.1.0.1\build\NuGetTester.targets" Condition="Exists('..\packages\NuGetTester.1.0.1\build\NuGetTester.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\NuGetTester.1.0.1\build\NuGetTester.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\NuGetTester.1.0.1\build\NuGetTester.targets'))" />
</Target>
</Project>
Проект 2 Второй проект не имеет этих строк.
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
Когда я включаю эти строки во второй проект, кажется, что все работает.Может кто-нибудь объяснить, почему это происходит только для первого проекта?Могу ли я каким-то образом заставить все проекты в решении, которое устанавливает этот NuGet, также включать эти строки?Я не могу заставить своих пользователей включать это вручную.
Редактировать, это файл .targets.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Content Include="$(MSBuildThisFileDirectory)\Versions\*.sql">
<Link>App_Data\Versions\%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
</Project>
Спасибо