• 搭建NuGet服务器


    NuGet.Server是由.NET Foundation提供的一个包,用于创建一个ASP.NET应用程序,该应用程序可以在任何运行IIS的服务器上。简单地说,NuGet.Server在服务器上创建一个文件夹,并可以通过HTTP(S)获取内容。设置起来很简单,适用于简单的场景。

    1. 在Visual Studio中创建一个空的ASP.NET Web应用程序,并将NuGet.Server包添加到它。
    2. 配置应用程序中的Packages文件夹并添加软件包。
    3. 将应用程序部署到合适的服务器。

    以下为创建ASP.NET Web应用程序的详细步骤。

    使用NuGet.Server创建和部署ASP.NET Web应用程序

    1. 在Visual Studio中,选择File> New> Project,搜索“ASP.NET”,为C#选择ASP.NET Web应用程序(.NET Framework)模板,并将Framework设置为“.NET Framework 4.6”:

    2. 为应用程序提供除NuGet.Server以外的合适名称,比如上图的MyServer,选择OK,然后在下一个对话框中选择模板,然后选择确定

    3. 右键单击该项目,选择管理NuGet包

    4. 在Package Manager UI中,选择Browse选项卡,然后搜索并安装最新版本的NuGet.Server包(如果您的目标是.NET Framework 4.6)。(您也可以使用软件包管理器控制台进行安装Install-Package NuGet.Server。)如果出现提示,请接受许可条款。

    5. 安装NuGet.Server将空的Web应用程序转换为软件包源代码。它安装了各种其他软件包,Packages在应用程序中创建一个文件夹,并修改web.config以配置其他信息(请参阅该文件中的注释以获取详细信息)。

      注意:

      在NuGet.Server包完成对web.config文件的修改之后,仔细检查它NuGet.Server可能不会覆盖现有的元素,而是创建重复的元素。当您稍后尝试运行该项目时,这些重复项会导致“内部服务器错误”。例如,如果您在安装NuGet.Server包之前,web.config包含<compilation debug="true" targetFramework="4.5.2" />,则NuGet.Server包不会覆盖它,而是会插入第二个<compilation debug="true" targetFramework="4.6" />在这种情况下,请删除具有较旧框架版本的元素。

    6. 要将应用程序发布到服务器时在源中提供包,请在Visual Studio中将每个.nupkg文件添加Packages文件夹中,然后将每个文件的“ 生成操作”设置为“ 内容”并将“ 复制到输出目录”设置“始终复制(右键>属性)

    7. 在Visual Studio中本地运行站点(F5)。主页提供了NuGet服务器网址,如下所示。如果您看到错误,请仔细检查您web.config的重复元素是否在前面的步骤5中提到。

    8. 点击上图圈出来的here可以看到关于包的信息。

    9. 第一次运行应用程序时,NuGet.Server重新构建Packages文件夹以包含每个软件包的文件夹。与NuGet 3.3引入本地存储布局相匹配,目的是提高性能。添加更多软件包时,请继续遵循此结构,如上图。

    10. 本地测试通过后,根据需要将应用程序部署到其他内部或外部站点。

    11. 一旦部署到http://<domain>,您用于软件包源的URL将会是http://<domain>/nuget

    配置Packages文件夹

    NuGet.Server1.5及更高版本中,您可以在web.config文件中,修改appSetting/packagesPath的自定义包文件夹路径

    <appSettings>
        <!-- Set the value here to specify your custom packages folder. -->
        <add key="packagesPath" value="C:MyPackages" />
    </appSettings>
    

    packagesPath 可以是绝对路径或虚拟路径。

    packagesPath省略或保留为空时,packages文件夹是默认值~/Packages

    从外部向包服务器添加包

    一旦NuGet.Server站点运行,您可以使用nuget push 添加软件包,只要您在web.config中设置API密钥值。

    安装NuGet.Server包后,web.config包含一个空appSetting/apiKey值:

    <appSettings>
        <add key="apiKey" value="" />
    </appSettings>
    

    apiKey省略或空白时,将包推送到包服务器功能将被禁用。

    要启用此功能,请将该apiKey设置为一个值(理想情况下为强密码),并确保appSettings/requireApiKey值为true

    <appSettings>
            <!-- Sets whether an API Key is required to push/delete packages -->
        <add key="requireApiKey" value="true" />
    
        <!-- Set a shared password (for all users) to push/delete packages -->
        <add key="apiKey" value="" />
    </appSettings>
    

    如果您的服务器已经安全,或者您不需要API密钥(例如,在本地团队网络上使用私有服务器时),则可以设置requireApiKeyfalse所有有权访问服务器的用户都可以往此包服务器推送软件包。

    从包服务器中移除包裹

    使用NuGet.Server时,nuget delete命令会从存储库中删除一个包,只要您将API密钥包含在注释中即可。

    如果您想要改变行为来取消包(将其保留为包恢复),请将web.config中的enableDelisting键更改为true。

  • 相关阅读:
    C#编写功能让你的系统导入注册表文件时不提示
    登陆框提示历史记录
    C# 操作系统防火墙
    C# 制作Java +Mysql+Tomcat 环境安装程序,一键式安装 (续集Tomcat 配置)
    C# 修饰符你记住了吗?
    C# 实现设置系统环境变量设置
    showModalDialog使用例子,父窗口向子窗口传递值
    C#后台无刷新页面弹出alert方法
    VS2008 无法启动调试.未安装Silverlight托管调试包 .
    在GridView中使用FindControl .
  • 原文地址:https://www.cnblogs.com/hzhhhbb/p/8991656.html
Copyright © 2020-2023  润新知