gpt4 book ai didi

asp.net-core - .net 核心 (csproj) global.json 'projects' 等效

转载 作者:行者123 更新时间:2023-12-04 02:01:29 24 4
gpt4 key购买 nike

使用 .net core (project.json),我曾经通过将源代码路径添加到 projects 来在 nuget 包和源代码之间切换。 global.json 中的字段。在我这样做之后,它会添加它可以在该路径中找到的所有项目,这些项目可以替换我引用的 nuget 包。

我经常使用此功能,因为我有自己使用的 nuget 包,但我想在发布之前测试其他项目中的更改。但是一旦我切换到 Sdk 1.0.0/VS 2017/csproj .net 核心,该功能似乎消失了。

另一种方法是手动添加每个项目,手动切换引用(因为它们被分解为项目、nuget 和 sdk 引用),然后将其全部切换回来。

任何想法或建议都会很棒。

更新:
听起来 csproj 中没有等效项(如预期的那样),但是现在有 msbuild 解决方法(从最初的 VS 2017/.NET Core SDK 1.0.0 版本开始)

最佳答案

是的,我也已经习惯了这个功能,并围绕它构建了我的工作流程。我仍在寻找解决方案,但我目前正在尝试在 csproj 文件中使用条件逻辑的想法。由于现在是 msbuild,您可以执行以下操作:

    <Choose>
<When Condition="Exists('..\..\..\MyProject')">
<ItemGroup>
<ProjectReference Include="..\..\..\MyProject\src\MyProject\MyProject.csproj" />
</ItemGroup>
</When>
<Otherwise>
<ItemGroup>
<PackageReference Include="MyProject" Version="1.0.0" />
</ItemGroup>
</Otherwise>
</Choose>

如果可以找到源代码(在本例中为目录),则使用项目引用替换对包的硬引用,如果找不到,则使用包引用。

因此,默认情况下您将引用该包,但如果您想调试您的项目之一,您可以在条件检查的位置 checkout 它,然后将该项目添加到您的解决方案中。

这样,当您想要包含源代码时,您只需更改您的解决方案文件(通过添加项目),而不是重新连接所有项目引用。

关于asp.net-core - .net 核心 (csproj) global.json 'projects' 等效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42773815/

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