Как добавить несколько строк в файл csproj проекта после установки nuget
Поскольку вы используете net стандартную библиотеку классов 2.1, вы можете использовать более простой способ.
Вы можете выполнить следующие шаги:
1) создать такую структуру проекта:
Примечание : вы не можете использовать import="xxxx.csproj"
, это незаконно, и один основной файл csproj не может импортировать другой файл csproj того же уровня. Вместо этого вы должны использовать package.targets
вместо packages.csproj
.
2) вы должны создать файл с именем <package_id>.targets
в папке сборки, чтобы он мог импортировать такой узел в вашем основном project.csproj
при установке такого пакета nuget.
В NugLib.targets
файле:
<Project>
<Import Project="..\contentFiles\any\any\build\build.targets" />
<Import Project="..\contentFiles\any\any\package.targets" Condition="Exists('..\contentFiles\any\any\package.targets')" />
</Project>
3) загрузите проект NugLib, а затем добавьте их в NugLib.csproj
файл:
<ItemGroup>
<Content Update=".pack\**" Pack="true" IncludeInPackage="true" PackagePath="content\any\any\;contentFiles\any\any\;;">
</Content>
<Content Update="build\build.targets" Pack="true" IncludeInPackage="true" PackagePath="content\any\any\;contentFiles\any\any\;;">
</Content>
<None Update="build\NugLib.targets" Pack="true" PackagePath="build\NugLib.targets" />
</ItemGroup>
4) Щелкните правой кнопкой мыши свой проект и выберите Pack , тогда новый пакет nuget NugLib будет существовать под bin\Debug\xxx.nupkg
.
Помимо , если вы хотите переименовать пакет, вы можете обратиться к этому документу .
Эти файлы будут автоматически добавлены в ваш основной проект. В каркасном проекте net, например:
В основном проекте net он находится под obj\ConsoleApp1.csproj.nuget.g.targets
Чтобы добавить идентификатор / заголовок проекта, вы можете установить эти свойства напрямую в файле NugLib.csproj
:
<PropertyGroup>
<PackageId>AppLogger</PackageId>
<Version>1.0.0</Version>
<Authors>your_name</Authors>
<Company>your_company</Company>
</PropertyGroup>