如何在NuGet包中更改目标文件名?

时间:2014-04-23 10:53:32

标签: msbuild nuget nuget-package

JavaScript命名约定需要文件名中的版本号,例如jQuery.1.34.min.js,我的文本模板将在输出文件夹中输出my-library.js

我想用my-library.js创建NuGet包,安装时应将其部署为my-library.1.34.js

如果我构建nuget包作为msbuild进程的一部分,我无法重命名输出js文件。

我已经有一个很长的解决方法,我有一个控制台应用程序,它将文件复制到文件夹结构作为给定的版本号,然后它构建一个nuspec文件,然后传递到nuget.exe,如果有任何简单的话,我想避免这么长的步骤。

1 个答案:

答案 0 :(得分:2)

我发现我可以通过指定目标的完整文件名来重命名包含文件。

例如( nuspec代码段):

<files>
<file src="my-library.js" target="content/my-library.$VERSION$.js">
</files> 

和nuget会像:

一样运行
nuget.exe pack mypackage.nuspec -Prop VERSION=1.34

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