我有一个 nuget 包,其中包含我希望在用户安装我的包时复制到构建输出的内容。对此有支持: NuGet v3.3 中的NuGet ContentFiles Demystified。但是,它仅适用于使用project.json
. 当我有一个使用packages.config
.
为了使我的 NuGet 包在使用 aproject.json
或的项目上工作,我可以使用替代方案或解决方法packages.config
吗?
我有一个 nuget 包,其中包含我希望在用户安装我的包时复制到构建输出的内容。对此有支持: NuGet v3.3 中的NuGet ContentFiles Demystified。但是,它仅适用于使用project.json
. 当我有一个使用packages.config
.
为了使我的 NuGet 包在使用 aproject.json
或的项目上工作,我可以使用替代方案或解决方法packages.config
吗?
在 StackOverflow 上快速搜索会发现以下问题,我认为它涵盖了您所要求的内容:
您可以将文件放在NuGet 包内的Content 目录中。
在您的 .nuspec 文件中:
<file src="css\mobile\*.css" target="content\css\mobile" />
当您将其安装到您的项目中时,它会将 css\mobile 目录添加到您的项目以及该目录中的文件。
但是,这只会将文件添加到项目中。为了将它们复制到您的输出目录,您需要使用 PowerShell 脚本来修改项目项的复制本地信息。
另一种可能更好的方法是使用自定义MSBuild .targets 文件。这将作为导入添加到您的项目中,然后在您的 .targets 文件中,您可以添加所需的文件并指定副本以直接输出信息,就好像它是您项目的一部分一样。NuGet .nupkg 文件内容:
\build
\Net45
\MyPackage.targets
\Foo.txt
MyPackage 是上面 NuGet 包的 id。
在 .targets 文件中,您可以指定文件(例如 Foo.txt)。
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<None Include="Foo.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>