通过msbuild pack target打包时,如何更改nuget包中的目标文件名?
我有一个通过msbuild pack target打包时,如何更改nuget包中的目标文件名?,msbuild,nuget,csproj,Msbuild,Nuget,Csproj,我有一个csproj文件,其中包含如下条目 <None Include="library.txt" Pack="true" PackagePath="content" /> 该文件作为/content/library.txt正确包含在nuget包中。 有没有办法更改文件名本身(包路径始终只是目录)。也就是说,我想要的是 nuget中的/content/readme.md,无需更改源文件名或扩展名 这在vanilla n
csproj
文件,其中包含如下条目
<None Include="library.txt" Pack="true" PackagePath="content" />
该文件作为/content/library.txt
正确包含在nuget包中。
有没有办法更改文件名本身(包路径始终只是目录)。也就是说,我想要的是
nuget中的/content/readme.md
,无需更改源文件名或扩展名
这在vanilla nuget中是可能的(供参考
)
这在香草努吉是可能的
根据链接的帖子,如果你看底部的注释,那就不是这样了
src和target中的文件扩展名必须匹配,否则指定的目标将被视为目录
同样的行为也适用于csproj
。只要包含文件的文件扩展名与输出文件匹配,它就可以工作。使用以下行可以将library.txt
文件作为readme.txt
包含在包中
<None Include="library.txt" Pack="true" PackagePath="/content/readme.txt" />
但是,如果要使用不同的文件扩展名,例如PackagePath=“/content/readme.md”
,则包中的路径将是/content/readme.md/library.txt
。从Jon Skeet那里看到这个。这个问题在VisualStudio2019中仍然存在
显然,最简单的解决方法是将文件重命名为目标文件名。当然,您可以在生成时复制文件并手动打包,或者使用MSBuild magic,但我认为您目前无法使用
csproj
执行此操作。Nice不知道。