C#学习教程:如何告诉nuget将包资源文件作为链接添加,而不是将它们复制到项目目录中(Howtopackageresourcesintoanugetpackage)要将一些资源文件打包到nuget包中,通常会执行以下操作。将所有资源文件放到nuget包的content目录下。这将由.nuspec文件中的以下行指定:现在,当此nuget包安装到AnotherProject中时,将出现以下文件结构:Solution.slnpackagesProject.1.0.0contentjsscript.js//原始资源文件AnotherProjectjsscript。js//物理副本AnotherProjectAnotherProject.csproj//标签(见下文)在包安装期间,AnotherProject.csproj被注入标签:这是原始资源的物理副本(位于包目录中)。实际问题(如何将资源作为链接打包到nuget包中)我的目标不是在AnotherProject目录中拥有资源文件的物理副本,而是在packages目录中拥有指向原始资源的“链接”。在csproj中,这应该是这样的:jsscript.jsPreserveNewest我宁愿避免的蛮力解决方案目前,我能想到的一个“艰苦的工作”解决方法是:但是,这有以下缺点:由于NuGet没有目前不支持开箱即用,因此您可以选择使用PowerShell或使用自定义MSBuild目标。Powershell如果您使用VisualStudio对象模型(EnvDTE),您应该能够避免项目重新加载提示。我会看一下Project.ProjectItems.AddFromFile(...)看看它是否适合您。MSBuild目标通常,自定义.props和.targets用于自定义构建过程。但它们只是MSBuild项目文件,因此您可以将资源项添加到这些项目文件中。请注意,安装NuGet包会在项目文件的开头导入.props,并在项目末尾导入.targets。自定义NuGet另一个需要更多工作的选项是修改NuGet以支持您想要执行的操作。以上就是C#学习教程:如何告诉nuget将包资源文件添加为链接,而不是复制到项目目录下,共享所有内容。如果对大家有用,需要进一步了解C#学习教程,还望大家多多关注。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
