问题描述
我有一个像这样的nuget包:
I have a nuget package like:
/build/SharedTargets.targets
/content/File.cs
SharedTargets.targets看起来像:
SharedTargets.targets looks like:
<Compile Include="$(MSBuildThisFileDirectory)\..\content\File.cs">
<Link>File.cs</Link>
<Visible>True</Visible>
</Compile>
有没有一种方法可以更优雅地引用内容文件? IE.如何正确构建内容的相对路径.
Is there a way how to reference the content files in more elegant way ? I.E. how to construct relative path to content properly.
推荐答案
基本上就是这样做的方法.
That's basically how to do it.
我建议不要将.cs文件放在content
子文件夹中,因为它们可能最终出现在旧版package.config项目的项目目录中.
I'd suggest not putting .cs files in the content
subfolder since they might end up in the project directory on legacy packages.config projects.
如果仅使用PackageReference
来引用程序包,则可以改用contentFiles-NuGet功能,使您可以将具有关联的构建操作(Compile,EmbeddedResource等)的文件逻辑上添加到构建过程中,而无需需要一个.targets文件.请参见使用contentFiles内容文件的元素用于基本的NuGet机制.
If you are only using PackageReference
to reference the package, you could use contentFiles instead - a NuGet feature that lets you add files with an associated build action (Compile, EmbeddedResource,...) logically to the build process without needing a .targets file. See Using the contentFiles element for content filesfor the underlying NuGet mechanism.
这篇关于nuget包中的.targets文件-如何将内容文件包含到构建中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!