如何在 Visual Studio 中从 nuget 包中排除依赖项



我有一个解决方案,它使用具有所有DTO类(数据对象(的nuget。

在开发时,我想创建新的 DTO。为了避免必须将 DTO 添加到外部项目 DataObjects,并重新编译和重新发布 nuget 只是为了能够访问项目中的新 DTO,我创建了一个具有相同命名空间的项目 (DevObjects(。 我只是在DevObjects中弹出一个新的DTO类并继续开发。 完成该特定作业后,我将 DTO 移动到数据对象重新编译并发布 nuget。

这工作正常,除了当我将我正在处理的库发布为 nuget 时,它会将 DevObjects 列为依赖项,即使它没有在代码中引用。

如何从库 nuget 中排除开发对象?

我能想到的唯一解决方法是发布一个 DevObjects 的虚拟 nuget 只是为了让 nuget 开心,但它感觉不像是一个可口的解决方案。

当我完成该特定工作时,我将 DTO 移动到 数据对象重新编译并发布 nuget。

我认为您已经将包含文件DTO的项目引用之类的项目引用添加到DataObjects项目中,我认为这些项目基于网络标准。打包数据对象时,它将生成对开发对象的依赖关系。这是正常行为。

在某种程度上,将项目打包为 nuget 时,依赖项的生成实际上意味着添加项目引用。

如何从库 nuget 中排除开发对象?

您可以通过对 DataObjects.csproj 进行一些更改来删除 DevObjects。

>include更改为remove

<ProjectReference Remove="..xxxxDevObjects.csproj" />

此外,您可以通过UI控件排除参考项目。(Right-click on DataObjects-->Dependencies-->Add Reference-->Projects-->uncheck DevObjects(

结论

打包项目时,项目参考会将依赖项添加到 nuget 包。因此,如果您不想具有此依赖项,只需将 DTO 类作为现有项添加到DataObjects项目中即可。希望它能帮助你。

最新更新