是否可以在使用Nuspec文件节点复制期间重命名文件

时间:2017-09-05 11:57:51

标签: nuget nuspec

我目前正致力于更改代码库以使用Nuget。作为流程的一部分,应将ressources复制到输出目录,从项目中的postbuild事件移动到.nuspec文件中的files标记。

对于特定的项目,ressource被称为Resources.resx,在复制过程中被重命名为更具体的东西(是的,我知道很棒的编程 - 不是我的,不是我改变它的地方)。

是否可以使用nuspec中的文件节点更改文件名,或者在这种情况下是否需要保留postbuild?

我尝试使用target属性重命名它失败了:

< file src="foo/bar.resx" target="foo/foobar.resx"/>

创建以下输出: 为 “foo / foobar.resx / bar.rex”

我在github上发现了一个熟悉的问题,但由于被发布在死树枝上并且没有尝试重命名文件而是改变其类型而被拒绝了。

https://github.com/NuGet/Home/issues/2019

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

此功能未内置于NuGet中。唯一可以想到的方法是实现一个powershell脚本(install.ps1)来处理文件和csproj的重命名。

答案 1 :(得分:0)

迟到聚会了,但这看起来可行:

发件人:https://docs.microsoft.com/en-us/nuget/reference/nuspec

  

重命名程序包中的内容文件

Source file:
ie\css\style.css

.nuspec entry:
<file src="ie\css\style.css" target="Content\css\ie.css" />

Packaged result:
content\css\ie.css

编辑:

我在此帖子(https://stackoverflow.com/a/45601252/182888)上写到:

  

注意:src中的文件扩展名和目标必须匹配,否则指定的目标将被视为目录。

因此请记住这一点,否则可能会使您绊倒。