使用本地项目引用覆盖nuget包引用

Val*_*ris 5 c# msbuild nuget nuget-package

我想迭代一个nuget包,而不是不断地将包推送到nuget feed.

我想知道是否有可能通过csproj文件中的目标或道具文件有条件地添加项目引用而不是nuget包引用,这将允许我在本地调试我的nuget包.

在我的csproj中我会:

<Reference Include="A">
    if(Exists(localOverrides.props) {
        <HintPath>localOverrides.A.HintPath</HintPath>
    } else {
        <HintPath>..\packages\A.dll</HintPath>
    }
</Reference>
Run Code Online (Sandbox Code Playgroud)

和localOverrides.props将是我的.gitignore中列出的文件,开发人员可以添加以下行:

A -> C:\Repos\A\bin\A.dll
Run Code Online (Sandbox Code Playgroud)

我走错了路吗?当然,必须有一种更可持续的方式来快速迭代和调试nuget包,然后在每次更改时创建预发布包

小智 3

我一直调试 Nuget 包的方式是,一旦通过 Nuget 将该包添加到解决方案中,您就可以对 Nuget DLL 进行更改,并将它们复制到使用 Nuget 包的项目的包文件夹中的正确文件夹中。

您所要做的就是在调试模式下编译 Nuget 项目解决方案的解决方案,然后将它们复制/粘贴到使用项目的包文件夹中。您可以通过编写批处理脚本并将其作为构建后事件添加到 Nuget 项目(该项目刚刚将 DLL 复制到正确的文件夹中)来使此操作变得更加简单。