gpt4 book ai didi

c# - 在 VS2019 中,nuget 不会将引用的项目视为 lib,而是将其视为 nuget 包

转载 作者:行者123 更新时间:2023-12-04 03:59:32 29 4
gpt4 key购买 nike

我使用的是 VS2019 社区版。我有两个 .net 核心项目 X、Y,X 正在引用 Y,我想将 X 打包为 Nuget 包,我正在使用 VS2019 中的包功能。当我尝试在另一个项目中添加 X 的 Nuget 包时,它搜索 Y 作为 Nuget 包而不是 DLL 应该在 X 中。

我如何更改此设置以便将 Y 作为 DLL 添加到 X 的包中?

我尝试将以下内容添加到 X 的项目 (.csproj) 中:

  <PropertyGroup>
<TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);CopyProjectReferencesToPackage</TargetsForTfmSpecificBuildOutput>
</PropertyGroup>
<Target Name="CopyProjectReferencesToPackage" DependsOnTargets="ResolveReferences">
<ItemGroup>
<BuildOutputInPackage Include="@(ReferenceCopyLocalPaths-&gt;WithMetadataValue('ReferenceSourceTarget', 'ProjectReference'))" />
</ItemGroup>
</Target>

但我仍然得到相同的结果,nuget.exe 尝试将 Y 还原为 Nuget 包,而不是 DLL 随 X 的包一起提供。

  • 更新:

此外,如果 Y 有另一个 Nuget 依赖项,则应在 X 中考虑它,而不是在 X 中直接引用它。

最佳答案

我尝试了以下方法:
在 X 的项目中:

  • 转到依赖项->项目。
  • 右键单击 Y 的项目,然后单击 Properties
  • 私有(private) Assets 设置为All
    现在,这会将 Y 的 dll 文件添加到 X 的 nuspec 文件的 lib 文件夹中。
    如果 Y 不依赖于 X 不知道的任何其他 Nuget 包,这将正常工作,因为这些包不会在 X 的 nuspec 文件中作为依赖项被提及。

最后我决定这样做:
只需引用 Y,也为其生成包并使用它:'(

关于c# - 在 VS2019 中,nuget 不会将引用的项目视为 lib,而是将其视为 nuget 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63279147/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com