Net6应用中无需新建NuGet包测试自研库代码的方法
无需重新打包NuGet即可测试.NET 6中自研库代码变更的方法
以下是几种实用方案,帮你在不新建版本号NuGet包的前提下测试代码变更:
直接覆盖输出目录DLL
编译修改后的自研库(原生C++ DLL + C++/CLI托管DLL),将两个文件直接复制到.NET 6应用的输出目录(如bin/Debug/net6.0),覆盖原有文件。注意操作前要停止应用运行,避免文件被锁定。调试时可先停止调试,替换后重新启动即可加载新代码。改用项目引用替代NuGet包
将自研库的C和C/CLI项目加入到.NET 6应用的解决方案中,在应用项目里添加对这两个库项目的直接引用。此后每次修改库代码,编译解决方案时会自动同步最新DLL到应用输出目录,还能直接在调试时进入库代码排查问题,效率更高。本地NuGet源+无版本号构建
- 在自研库的项目文件中配置,将构建生成的NuGet包输出到本地指定文件夹(如
C:\LocalNuGetFeed)。 - 在.NET 6应用的NuGet包源中添加这个本地文件夹作为源。
- 每次修改库代码后,重新构建生成包(无需修改版本号),然后在应用的NuGet包管理器中执行更新操作,本地源的新包会覆盖缓存的旧包。
- 若缓存干扰导致新代码不生效,可执行命令清理本地NuGet缓存:
dotnet nuget locals all --clear,之后再重新获取本地包。
- 在自研库的项目文件中配置,将构建生成的NuGet包输出到本地指定文件夹(如
修改项目文件直接指定DLL路径
移除应用项目中原来的NuGet包引用,改为直接引用编译好的DLL文件,示例配置如下:<!-- 移除原NuGet引用 --> <!-- <PackageReference Include="YourCustomLib" Version="x.x.x" /> --> <!-- 引用C++/CLI托管DLL --> <Reference Include="YourManagedCLI.dll"> <HintPath>..\YourLibProject\bin\Debug\YourManagedCLI.dll</HintPath> <Private>true</Private> </Reference> <!-- 配置原生C++ DLL复制到输出目录 --> <None Include="..\YourLibProject\bin\Debug\NativeCpp.dll"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None>这样每次编译库代码后,最新的DLL会自动同步到应用输出目录,无需手动复制或打包NuGet。
内容的提问来源于stack exchange,提问作者Charlie
相关产品推荐
相关产品推荐

