我对dotnet开发还比较陌生,并且有一个如何设置本地开发环境的问题。我有一个asp核心rest,它在内部使用不同的“服务”。这个项目比较庞大,所以我们已经将我们的服务分成了外部库,我们通过依赖关系引入了这些库。效果很好。唯一的问题是在集成新服务或开发现有服务的新特性时,我希望使用新的本地构建服务构建/测试api。
这个是可能的吗?处理这个用例是很容易的吗?在开发期间删除外部依赖项并添加本地依赖项?我搜索并搜索这里的堆栈溢出,但没有找到任何解决方案。
谢谢你的帮忙!
问候
塞巴斯蒂安
发布于 2020-02-11 06:09:01
我使用csproj文件上的Condition元素上的ItemGroup属性与某种本地标志文件一起解决了这个问题。csproj配置如下所示:
<!-- erp service -->
<ItemGroup Condition="Exists('..\.localdev_erp')">
<ProjectReference Include="..\..\erp-svc\MyCompany.Service.Erp\MyCompany.Service.Erp.csproj" />
</ItemGroup>
<ItemGroup Condition="!Exists('..\.localdev_erp')">
<PackageReference Include="MyCompany.Service.Erp" Version="1.0.9" />
</ItemGroup>在本地创建和删除文件很容易,只有在添加/删除本地引用后才可能需要dotnet restore。这个解决方案的小缺点是,对于所有开发人员来说,都需要一个有点同质的本地环境。
我们将此解决方案用于以下用例:
发布于 2020-02-10 11:53:44
要调试nuget packages,可以使用符号包与dlls一起发布符号。Visual studio支持允许下载符号和调试源代码的符号源。但问题可能更深..。
理想情况下,外部库应该有一个稳定的接口,可以通过库本身附近的自动测试进行测试。即使是重大的更改也不应导致调用代码中的任何更改和问题。在这种情况下,删除外部依赖并在开发期间添加本地依赖应该是可以的,因为它很少操作。
如果您经常需要调试包,这意味着这两个部分经常在一起进行更改。它可以表明下列问题:
https://stackoverflow.com/questions/60147249
复制相似问题