Вы уверены, что файл .targets
действительно не импортирован в ваш пакет Nuget?
Наряду с файлом .nuspec
вы должны использовать Nuget CLI для упаковки ваших файлов. Не используйте CLI dotnet
После того, как вы создали .nupkg
файл с помощью команды nuget pack
, вы можете открыть свой пакет, используя Nuget Package Explorer илипросто WinRar (я думаю, что это должно работать и с 7-zip).
На этом этапе, если вы видите, что ваш файл .targets
или ваш Rcs.dll
отсутствуют, это означает, что у вас естьпроблема с файлом .nuspec
.Убедитесь, что ваш .nuspec
файл имеет имя ProjectName.nuspec
ИЛИ
Укажите файл .nuspec
в вашем .csproj
<PropertyGroup>
[...]
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<NuspecFile>ProjectName.nuspec</NuspecFile>
[...]
</PropertyGroup>
Если ваш .targets
файл находится в вашем .nupkg
, то это означает, что его выполнение просто не соответствует вашим ожиданиям.
При установке пакета Nuget файлы сохраняются в кэше Nuget .На Windows это находится в %userprofile%\.nuget\packages
.Ваш .targets
файл и ваш Rcs.dll
также должны быть там
Прежде всего вы можете включить это в ваш .targets
файл
<Target Name="TestMessage" AfterTargets="Build" >
<Message Text="***********************************************************" Importance="high"/>
<Message Text="$(MSBuildThisFileDirectory)" Importance="high"/>
<Message Text="***********************************************************" Importance="high"/>
</Target>
При создании проекта вы увидитетекущая папка фактически является вашим кешем (не каталогом вашего проекта)
Если я понимаю, вам нужно скопировать Rcs.dll
в папку bin.Для этого вы можете написать аналогичную задачу в вашем .targets
файле
<ItemGroup>
<Content Include="$(MSBuildThisFileDirectory)\..\lib\Xamarin.iOS10\Rcs.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
Это нормальное поведение, когда файл .targets
не копируется в ваш проект, ссылающийся на ваш пакет Nuget.Файл .targets
должен оставаться в кэше Nuget, но оттуда выполните команду MsBuild, чтобы скопировать файл Rcs.dll
.
Надеюсь, вы понимаете мой ответ, и он решит вашу проблему.