繁体   English   中英

远离维护2个项目(天蓝色与非天蓝色)

[英]Moving away from maintaining 2 projects (azure vs non-azure)

我们有一个asp.net Web应用程序,托管在2个环境中,一个托管在azure上,另一个是“独立”版本,托管在使用IIS的公司服务器上。 这些项目并不完全相同。 例如,azure项目使用Microsoft.WindowsAzure.Storage.Queue等....

痛点是:当我们对一个项目进行代码更改或增强时,我们必须对另一个项目进行相同的更改,这是一个巨大的痛苦。

有关更好的方法来处理和管理这个的任何建议吗? 有些客户希望在自己的服务器上安装我们的网络应用程序,而其他客户则更喜欢azure。

感谢您的反馈和见解。

要解决这种问题,NuGet会派上用场

它可以轻松地将DLL,JavaScript文件或您能想到的任何其他组合的任意组合集成到项目中。 即使您想要共享的所有内容都是单个DLL中的一组自定义Entity Framework类,开发人员也可以通过NuGet将该DLL添加到他的项目中,而不是在某些文件共享上搜索该DLL。 此外,NuGet允许您使用包提供可搜索的描述性文本,以便使用Visual Studio的NuGet包管理器的开发人员可以知道他将要添加到他的项目中的内容。 当NuGet想要升级到更新版本的软件包时,他甚至可以简化开发人员的生活:他只需在NuGet软件包管理器中选择更新选项卡,以查找项目中哪些软件包具有更新版本。

在您的情况下假设您有2个使用相同代码集的解决方案,您需要做的是:

1)创建一个共同灵魂的nuget pakcage 2)打包3)发布你的解决方案

通过这种方式,您可以更好地控制您的解决方案,即使您不希望使用其他解决方案更新nuget feed

以下是如何创建Nuget包的方法

虽然您可以从命令行创建NuGet包,但是输入obscure命令不是我的首选 - 我更喜欢使用GUI。 如果这也是您的偏好,那么您的第一步是下载NuGet Package Explorer 下载Package Explorer后,它将自动打开(当您想再次使用它时,您也可以在NuGet Package Manager下的“开始”菜单中找到它)。

NuGetPackage Manager Explorer将其屏幕分为两部分:左侧是显示软件包文档的窗格(标记为“软件包元数据”),右侧是列出软件包中文件的窗格(标记为“软件包内容”)。 要开始创建新包,请从“文件”菜单中选择“新建”。 之后,您可以使用任一窗格,但我建议您从左侧开始使用Package元数据,方法是输入开发人员从NuGet Package Manager中选择包时所看到的文档。 我的理由是,如果您从文档开始,在将文件添加到包中并更好地了解包的内容后,您将有机会对其进行修改。

要创建包的文档,请单击包元数据窗格左上角的文档图标。 虽然您可以输入大量信息,但四个关键项目是:

Id(必须是唯一的)

作者(包装作者的逗号分隔列表)

标题

描述

标题和描述是开发人员将在NuGet包管理器中看到的内容,因此您希望提供开发人员可能需要的所有信息,以便找到您的包,识别它并知道它的作用。 或者,您也可以在“标签”文本框中输入开发人员在查找未显示在“标题”或“说明”中的包时可能使用的任何关键字。 要保存更改,请单击“包”元数据窗格左上角的绿色复选标记。

创建一个nuget包

当开发人员将您的包添加到他的项目中时,他会希望您的包的组件进入他的项目中的正确文件夹。 因此,将文件添加到包中的第一项任务是将这些文件夹添加到包中。 例如,我希望我的JavaScript文件进入名为PHVIS的子文件夹中的项目的Scripts文件夹。 要将该文件夹结构添加到我的包中,我首先需要向Package content窗格添加一个内容条目:从Package Explorer Content菜单中,我选择Add | 新文件夹,从子菜单中选择内容。 内容条目显示在“包内容”窗格中。

有了这个条目,我就可以为我的JavaScript文件添加文件夹结构了。 在包内容窗格中,我右键单击内容条目,选择添加| 新建文件夹,在结果对话框中,在单击“确定”按钮之前为该文件夹指定名称“脚本”。 在Scripts文件夹出现在内容条目下后,我右键单击它并选择添加新文件夹以添加我的PHVIS文件夹。 最后,我右键单击PHVIS文件夹,选择添加现有文件,浏览到我的项目,找到我的JavaScript文件,然后双击它将其添加到我的包的内容中。 现在,当开发人员将我的包添加到他的项目中时,他会在他的项目的Scripts / PHVIS文件夹中找到该JavaScript文件。

如果您愿意,还可以将文件从Windows资源管理器拖到“包内容”窗格中。 如果您这样做,Package Explorer将最好地猜测该文件应该进入的条目。 例如,如果我将HtmlHelper的DLL从Windows资源管理器中拖出并将其放在“包内容”窗格中,则Package Explorer会弹出一个对话框,询问我是否要将DLL添加到lib文件夹中。 因为我这样做,我只接受提供的选择:我的DLL出现在包内容窗格中,嵌套在lib条目中。 如果我不想控制文件出现的文件夹和子文件夹,我可以用我的JavaScript文件完成相同的操作。

如果发现文件夹未在“包内容”窗格中正确嵌套,则可以将它们拖动到所需位置。 如果要检查所有正确文件夹中是否包含所有包,请从“包资源管理器文件”菜单中选择“导出”,然后在生成的“选择文件夹”对话框中选择一个文件夹。 Package Explorer会将您的包解压缩到该文件夹​​中供您查看。

添加nuget源

现在是时候将您的包保存在您(和其他开发人员)可以找到的地方。 最简单的解决方案是告诉Visual Studio在查找NuGet包时使用网络共享上的文件夹。 这是该过程的一部分,您需要与其他开发人员合作,因为他需要告诉他的Visual Studio有关您的新文件夹。 当然,您还需要使用“程序包管理器文件”菜单上的“保存”选项将程序包保存到该文件夹​​。

要获取Visual Studio的副本以在新文件夹中搜索NuGet包,请从“工具”菜单中选择“选项”。 然后,从结果对话框的左侧列表中,展开NuGet Package Manager选项以显示Package Sources条目。 选择该条目,您将在“选项”对话框的右侧看到当前的包源列表(您也可以从“管理NuGet包”对话框进入此对话框 - 只需单击左下角的“设置”按钮你一直在忽视)

要将NuGet包文件夹添加到Visual Studio,请单击对话框右上角的加号按钮。 这会将新的源项添加到已使用某些默认值填充的列表中。 要更新这些默认条目,请确保选中新源,然后在对话框底部的文本框中输入值。 您需要为源命名(例如,PHVIS包源)和源,这是NuGet包文件夹的完整路径(例如,C:\\ NuGet)。

现在,在Visual Studio Manage NuGet Packages对话框中,您将在Online选项卡下找到新的Package Source。 选择源将列出文件夹中的所有包。 如果选择“全部”选项,您甚至可以使用常规NuGet源中的包将您的包混合到结果列表中。 选择软件包并单击“安装”后,您的软件包将添加到当前项目中。

希望它有所帮助,如果你想进一步讨论,请联系我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM