我们正在为我们的视觉工作室项目试验nuget。但是,我们只(或至少主要)将nuget用于我们自己的外部引用,并将它们存储在本地存储库(网络共享)中。我想知道的是如何处理整个调试/发布情况。
具体(简化)情况:
我们有一个主项目,它引用了我们自己开发的两个共享组件。这些共享组件也用于我们公司的其他产品
当我们在构建服务器上构建主项目(tfs 2015构建任务)时,我们构建了项目的调试和发布版本。但是,我们只能为每个外部引用指定一个nuget包。
我们希望在调试版本期间使用共享组件的调试版本以及在发布版本期间使用发布版本。然而,这些(据我所知)实际上是不同的包。
解决这个问题的方法是什么?例如,是否有一种方法可以在单个nuget包中包含发行版和调试版?是否可以针对不同的构建配置设置使用不同的nuget配置?
我找到了Best practices with Nuget: Debug or Release?,但是这个主题并没有真正解决我的问题。该线程更多地讨论了是否将调试版或发布版发布到远程服务器。我们希望发布两者并同时使用它们,但仅限于本地服务器。我们无意与世界其他地方分享我们的图书馆。
答案 0 :(得分:2)
NuGet包通常只包含一组特定目标框架的程序集。由于您要发布NuGet包以供其他用户使用,因此它并非真正用于发布调试版和发行版。通常,您不会向最终用户发布应用程序的调试和单独的发行版本。
您可以通过在NuGet包中使用具有自己的引用和配置信息的custom MSBuild .targets file来解决此问题。您可以将此.targets文件用作项目的扩展。它将被导入,因此您可以根据项目中定义的配置根据需要定义引用。它不理想,但应该有效。