显示在解决方案资源管理器中使用.targets文件添加的NuGet包项目

Mar*_*ryl 6 visual-studio nuget nuget-package

基于这个问题:防止在NuGet内容和contentFiles文件夹中复制文件,我正在使用build/Project.targets我的NuGet包的文件将一些文件添加到项目构建输出中.喜欢:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <Content Include="$(MSBuildThisFileDirectory)..\tools\test.jpg">
      <Link>test.jpg</Link>
      <Visible>false</Visible>
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    </Content>
  </ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

现在,我实际上希望这些文件在解决方案资源管理器中可见,以便开发人员可以调整项目属性.但是设置<Visible>标签true不起作用.这甚至可能吗?


我很高兴,即使一个完全不同的方法,仍然允许NuGet包添加文件到项目都生成输出packages.configPackageReference格式,但显示的文件解决方案资源管理器.

Leo*_*SFT 2

显示在解决方案资源管理器中使用 .targets 文件添加的 NuGet 包项

恐怕你不能使用.targetsfile 来做这样的事情。这是因为当您使用.target文件添加项目时,该项目会像“添加为链接”一样添加到您的项目中。这意味着该项目尚未真正添加到您的项目中。所以它不会显示在解决方案资源管理器中。

要解决此问题,您可以创建两个 nuget 包,分别使用 nuget contentforpackages.config格式和contentFilesforPackageReference格式。

希望这可以帮助。