不再维护2个项目(天蓝色vs非天蓝色)

时间:2019-04-22 15:20:07

标签: c# asp.net visual-studio azure iis

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

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

有没有更好的方法来处理和管理此问题的建议?一些客户端希望将我们的Web应用程序安装在自己的服务器上,而另一些客户端则希望使用Azure。

感谢您的反馈和见解。

1 个答案:

答案 0 :(得分:0)

要解决此类问题,NuGet会很方便

通过它可以轻松地将DLL,JavaScript文件或您想到的任何其他内容的任何组合集成到项目中。即使您要共享的只是在单个DLL中的一组定制的Entity Framework类,对于开发人员来说,通过NuGet将DLL添加到他的项目中要比在某些文件共享上寻找该DLL更容易。另外,NuGet允许您在包中提供可搜索的描述性文本,以便使用Visual Studio中的NuGet包管理器的开发人员可以知道他将要添加到其项目中的内容。 NuGet甚至可以简化开发人员要升级到较新版本程序包的工作:他只是在NuGet程序包管理器中选择“更新”选项卡,以查找项目中哪些程序包具有较新版本。

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

1)为您的共同灵魂创建一个裸体包 2)打包 3)发布您的解决方案

通过这种方式,即使您不想用其他解决方案来更新nuget feed的细节,您也将对解决方案有更多的控制权

这是创建Nuget包的方法

虽然您可以从命令行创建NuGet程序包,但键入模糊命令不是我的首选-我更喜欢使用GUI。如果也是您的喜好,那么第一步就是下载NuGet Package Explorer。程序包资源管理器下载后,它将自动打开(如果您想再次使用它,也可以在NuGet程序包管理器的“开始”菜单中找到它。)

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

要创建软件包的文档,请单击“软件包元数据”窗格左上角的文档图标。尽管您可以输入很多信息,但是四个关键项目是:

Id(必须唯一)

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

标题

说明

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

创建nuget程序包

当开发人员将您的软件包添加到他的项目中时,他希望软件包的组件进入其项目中的正确文件夹。因此,将文件添加到包中的第一个任务是将这些文件夹添加到包中。例如,我希望我的JavaScript文件进入子文件夹PHVIS中的项目的Scripts文件夹中。要将文件夹结构添加到我的包中,首先需要在“包内容”窗格中添加一个内容条目:从“包资源管理器的内容”菜单中,选择“添加” |“添加”。新建文件夹,然后从子菜单中选择内容。内容条目出现在“包装内容”窗格中。

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

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

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

添加Nuget源

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

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

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

现在,在“ Visual Studio管理NuGet程序包”对话框中,您会在“联机”选项卡下找到新的程序包源。选择您的来源将列出文件夹中的所有软件包。如果选择全部选项,您甚至会发现您的软件包与常规NuGet来源的软件包混入了结果列表中。选择软件包并单击“安装”后,您的软件包将被添加到当前项目中。

希望有帮助,如果您想进一步讨论,请与我联系。