【发布时间】:2017-11-12 15:39:33
【问题描述】:
我正在寻找有关在多个解决方案(包括调试和发布模式)中引用 C# 项目时的最佳实践的信息。 nuget 和符号服务器(我使用 myget,非常喜欢它)解决了发布包的问题。
但我对调试时该怎么做感到困惑。如果我尝试坚持使用 nuget 方法,我必须在发现并修复问题时将新的辅助包调试版本添加到 myget,然后清除 nuget 缓存并重建主项目。这行得通,但很快就会变得乏味。
有没有办法标记一个 nuget 包,以便将其标记为“仅供调试使用”?
我的另一个想法是使用 VS 2017 中新的 csproj 文件格式的功能,如下所示:
<ItemGroup Condition="'$(Configuration)' == 'Release'">
<PackageReference Include="Olbert.JumpForJoy.UI" Version="0.5.0" />
<PackageReference Include="Olbert.JumpForJoy.Wpf.Converters" Version="0.5.0" />
</ItemGroup>
<ItemGroup Condition="'$(Configuration)' == 'Debug'">
<ProjectReference Include="..\..\WPFUtilities\J4JUI\J4JUI.csproj" />
<ProjectReference Include="..\..\WPFUtilities\WpfConverters\WpfConverters.csproj" />
</ItemGroup>
第一个块使用 nuget 包,但仅用于发布版本。第二个将主要项目指向我本地文件系统中的子项目。这似乎让我可以从主项目中逐步完成子项目。但是要构建主要项目,我必须在解决方案中包含所有子项目。这没什么大不了的,但它会使解决方案工作区变得混乱。
如果有人有其他他们使用的方法,或对我正在做的事情的反馈(尤其是陷阱!),我会全力以赴。
【问题讨论】:
-
您想在调试和发布模式下使用 nuget 处理 C# 项目吗? AFAIK,NuGet 包通常只存储一组特定目标框架的程序集。它并不是真正设计用于发布调试和发布版本。这似乎不是更好的方法,除了你已经尝试过,必须要一个新的调试版本的附属包到 myget,虽然它让你觉得乏味。详细信息可以参考:stackoverflow.com/questions/13488280/…
标签: c# visual-studio nuget visual-studio-2017 csproj