对于使用 packages.config 的项目,是否有 contentFiles 的替代方案?
Is there an alternative to contentFiles with projects that use packages.config?
我有一个 nuget 包,其中包含我希望在用户安装我的包时复制到构建输出的内容。对此有支持:NuGet ContentFiles Demystified 在 NuGet v3.3 中。但是,它仅适用于使用 project.json
的项目。当我有一个使用 packages.config
.
的项目时,内容文件不会复制到我的构建输出中
我是否可以使用替代方法或解决方法来使我的 NuGet 包在使用 project.json
或 packages.config
的项目上运行?
在 Whosebug 上快速搜索会发现以下问题,我认为它涵盖了您的要求:
Set content files to "copy local : always" in a nuget package
您可以将文件放在 NuGet 包内的 Content directory 中。
在您的 .nuspec 文件中:
<file src="css\mobile\*.css" target="content\css\mobile" />
当您将其安装到您的项目中时,它会将 css\mobile 目录添加到您的项目以及该目录中的文件。
然而,这只会将文件添加到项目中。为了将它们复制到您的输出目录,您需要使用 PowerShell 脚本来修改项目项的复制本地信息。
另一种可能更好的方法是使用自定义 MSBuild .targets file。这将作为导入添加到您的项目中,然后在您的 .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>
我有一个 nuget 包,其中包含我希望在用户安装我的包时复制到构建输出的内容。对此有支持:NuGet ContentFiles Demystified 在 NuGet v3.3 中。但是,它仅适用于使用 project.json
的项目。当我有一个使用 packages.config
.
我是否可以使用替代方法或解决方法来使我的 NuGet 包在使用 project.json
或 packages.config
的项目上运行?
在 Whosebug 上快速搜索会发现以下问题,我认为它涵盖了您的要求:
Set content files to "copy local : always" in a nuget package
您可以将文件放在 NuGet 包内的 Content directory 中。
在您的 .nuspec 文件中:
<file src="css\mobile\*.css" target="content\css\mobile" />
当您将其安装到您的项目中时,它会将 css\mobile 目录添加到您的项目以及该目录中的文件。
然而,这只会将文件添加到项目中。为了将它们复制到您的输出目录,您需要使用 PowerShell 脚本来修改项目项的复制本地信息。
另一种可能更好的方法是使用自定义 MSBuild .targets file。这将作为导入添加到您的项目中,然后在您的 .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>