【发布时间】:2020-06-26 21:12:13
【问题描述】:
我有一个项目 Customer.Invoices,它是一个 nuget 包,csproj 文件具有以下内容。 PackageReference Customer.Prices 是 Customer.Invoices 项目中引用的 nuget 包。
Customer.Groups 项目引用只是 Customer.Invoices 解决方案中的一个引用项目。
<ItemGroup>
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.4" />
<PackageReference Include="Customer.Prices" Version="1.0.0.14" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\CustomerGroups\CustomerGroups.csproj" />
</ItemGroup>
我现在正在使用 Customer.Invoices nuget 包,它是我在另一个 C# 项目中需要的主包。我遇到了两个问题:
1.) 如果我不添加 Customer.Prices nuget 包,它会说在 Customer.Invoices 项目中运行方法时找不到程序集。
2.) 我得到一个未找到 CustomerGroups 项目的程序集。
我知道如何解决这些问题,因为我知道包含资产等,但不确定如何处理依赖项。对于第二个问题,不确定这是否可行,将 privateassets=all 添加到项目引用中,就像这是一个 .Net Core 2.2 项目:
<ProjectReference PrivateAssets="all" Include="..\CustomerGroups\CustomerGroups.csproj" />
再次不确定这是否正确,因为我还不太了解资产,但还需要弄清楚我是否可以让 Customer.Prices 程序集工作而不必添加该 nuget 包。
感谢您的帮助
【问题讨论】:
-
在“旧”的 .csproj 文件格式中,依赖项不是......传递性的? (我不知道正确的词),但它们是新格式。让我解释。如果您有 3 个项目,A、B 和 C。A 引用 B(但不是 C),而 B 引用 C。当您全部编译它们时,在旧样式中,A 的输出文件夹将包含 A 和 B,但是不是 C。在新格式中,默认情况下还会包含 C。你知道你是否有一个新样式的 .csproj 文件,或者一个新样式?你里面有一堆条目,每个 .cs 文件一个?
-
嗨@LasseV.Karlsen 我修改了问题,也显示了csproj引用。这是一个 .Net Core 2.2 类库
标签: c# nuget teamcity artifactory