zoukankan      html  css  js  c++  java
  • 搭建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。

  • 相关阅读:
    94. Binary Tree Inorder Traversal
    101. Symmetric Tree
    38. Count and Say
    28. Implement strStr()
    实训团队心得(1)
    探索性测试入门
    LC.278. First Bad Version
    Search in Unknown Sized Sorted Array
    LC.88. Merge Sorted Array
    LC.283.Move Zeroes
  • 原文地址:https://www.cnblogs.com/hzhhhbb/p/8991656.html
Copyright © 2011-2022 走看看