У меня есть несколько проектов в моем решении, все они имеют один и тот же пакет 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>
Спасибо