【问题标题】:Showing NuGet package item added using .targets file in Solution Explorer在解决方案资源管理器中显示使用 .targets 文件添加的 NuGet 包项
【发布时间】:2018-03-27 07:50:08
【问题描述】:

基于这个问题:Prevent duplicating files in NuGet content and contentFiles folders,我正在使用我的 NuGet 包的build/Project.targets 文件将一些文件添加到项目构建输出中。喜欢:

<?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>

现在,我实际上希望这些文件在 Solution Explorer 中可见,以便开发人员可以调整项目属性。但是将&lt;Visible&gt; 标签设置为true 无效。这甚至可能吗?


即使采用完全不同的方法,仍然允许 NuGet 包将文件添加到 packages.configPackageReference 格式的项目构建输出,我也会很高兴,但在解决方案资源管理器中显示文件 em>。

【问题讨论】:

    标签: visual-studio nuget nuget-package


    【解决方案1】:

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

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

    要解决此问题,您可以创建两个 nuget 包,对 packages.config 格式使用 nuget content,对 PackageReference 格式使用 contentFiles

    希望这会有所帮助。

    【讨论】:

    • 感谢您的回复。是的,我也害怕这个。虽然我仍然希望有一些创造性的解决方案。如果我最终不得不接受你的回答,那将是可悲的:)
    • @MartinPrikryl,这确实是一件痛苦的事情。我和你以前有类似的问题,在一个 nuget 包中为nuget contentcontentFiles 格式添加一个项目到解决方案资源管理器中。但是我没有实现它,和其他人讨论,最后,我们必须使用两个包,如果我们不想发布一个包含重复文件的nuget包。 :(。
    猜你喜欢
    • 2017-10-20
    • 2021-05-07
    • 1970-01-01
    • 2011-07-14
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    相关资源
    最近更新 更多