使用本地项目引用覆盖 nuget 包引用
Override a nuget package reference with a local project reference
我想迭代 nuget 包,而不是不断地将包推送到 nuget 提要。
我想知道是否可以通过 csproj 文件中的目标或 props 文件有条件地添加项目引用而不是 nuget 包引用,这样我就可以在本地调试我的 nuget 包。
在我的 csproj 中我会:
<Reference Include="A">
if(Exists(localOverrides.props) {
<HintPath>localOverrides.A.HintPath</HintPath>
} else {
<HintPath>..\packages\A.dll</HintPath>
}
</Reference>
和 localOverrides.props 将是我的 .gitignore 中列出的文件,开发人员可以添加行来喜欢:
A -> C:\Repos\A\bin\A.dll
我是不是走错了路?当然必须有一种更可持续的方法来快速迭代和调试 nuget 包,然后在每次更改时创建预发布包
我一直调试 Nuget 包的方式是,一旦你通过 Nuget 将该包添加到你的解决方案中,你就可以对 Nuget DLL 进行更改,并将它们复制到项目使用的包文件夹中的正确文件夹中Nuget 包。
您所要做的就是在调试模式下编译 Nuget 项目解决方案,然后 copy/paste 将它们编译到使用项目的包文件夹中。您可以通过编写批处理脚本并将其作为 post 构建事件添加到刚刚将 DLL 复制到正确文件夹中的 Nuget 项目,从而使这变得更加简单。
如果您只想调试 NuGet 包,我建议您使用 "dotpeek debug server" 选项。这样你就不需要对引用做任何事情,只需调试包或任何你想要的。
https://confluence.jetbrains.com/plugins/servlet/mobile#content/view/53336814
听起来您希望在与 NuGet 打包程序集项目相同的解决方案中有一个测试项目(单元或集成)。然后,您可以独立于 NuGet 包的任何使用者证明它的正确性。良好的测试还有助于确保您在将来更新包时不会无意中破坏任何东西。
我想迭代 nuget 包,而不是不断地将包推送到 nuget 提要。
我想知道是否可以通过 csproj 文件中的目标或 props 文件有条件地添加项目引用而不是 nuget 包引用,这样我就可以在本地调试我的 nuget 包。
在我的 csproj 中我会:
<Reference Include="A">
if(Exists(localOverrides.props) {
<HintPath>localOverrides.A.HintPath</HintPath>
} else {
<HintPath>..\packages\A.dll</HintPath>
}
</Reference>
和 localOverrides.props 将是我的 .gitignore 中列出的文件,开发人员可以添加行来喜欢:
A -> C:\Repos\A\bin\A.dll
我是不是走错了路?当然必须有一种更可持续的方法来快速迭代和调试 nuget 包,然后在每次更改时创建预发布包
我一直调试 Nuget 包的方式是,一旦你通过 Nuget 将该包添加到你的解决方案中,你就可以对 Nuget DLL 进行更改,并将它们复制到项目使用的包文件夹中的正确文件夹中Nuget 包。
您所要做的就是在调试模式下编译 Nuget 项目解决方案,然后 copy/paste 将它们编译到使用项目的包文件夹中。您可以通过编写批处理脚本并将其作为 post 构建事件添加到刚刚将 DLL 复制到正确文件夹中的 Nuget 项目,从而使这变得更加简单。
如果您只想调试 NuGet 包,我建议您使用 "dotpeek debug server" 选项。这样你就不需要对引用做任何事情,只需调试包或任何你想要的。 https://confluence.jetbrains.com/plugins/servlet/mobile#content/view/53336814
听起来您希望在与 NuGet 打包程序集项目相同的解决方案中有一个测试项目(单元或集成)。然后,您可以独立于 NuGet 包的任何使用者证明它的正确性。良好的测试还有助于确保您在将来更新包时不会无意中破坏任何东西。