Msbuild nuget包中的.targets文件-如何将内容文件包含到生成中

Msbuild nuget包中的.targets文件-如何将内容文件包含到生成中,msbuild,nuget,Msbuild,Nuget,我有一个nuget软件包,比如: /build/SharedTargets.targets /content/File.cs SharedTargets.targets看起来像: <Compile Include="$(MSBuildThisFileDirectory)\..\content\File.cs"> <Link>File.cs</Link> <Visible>True</Visible> </Compile&

我有一个nuget软件包,比如:

/build/SharedTargets.targets
/content/File.cs
SharedTargets.targets看起来像:

<Compile Include="$(MSBuildThisFileDirectory)\..\content\File.cs">
  <Link>File.cs</Link>
  <Visible>True</Visible>
</Compile>

File.cs
真的

有没有一种方法可以更优雅地引用内容文件?即如何正确构建内容的相对路径。

基本上就是这样做的

我建议不要将.cs文件放在
content
子文件夹中,因为它们可能最终位于legacy packages.config项目的项目目录中

如果您仅使用
PackageReference
引用包,则可以改用contentFiles,这是一种NuGet功能,允许您在不需要.targets文件的情况下,将具有关联生成操作(编译、嵌入资源等)的文件以逻辑方式添加到生成过程中。看见
基本上就是这样做的

我建议不要将.cs文件放在
content
子文件夹中,因为它们可能最终位于legacy packages.config项目的项目目录中

如果您仅使用
PackageReference
引用包,则可以改用contentFiles,这是一种NuGet功能,允许您在不需要.targets文件的情况下,将具有关联生成操作(编译、嵌入资源等)的文件以逻辑方式添加到生成过程中。看见 对于底层NuGet机制