2015-06-08 4 views
0

У меня есть несколько вопросов относительно Microsoft.AspNet.WebApi NuGet исходного пакета коды:Где я могу найти исходный код пакета Microsoft.AspNet.WebApi NuGet?

  1. Где находится хранилище с Microsoft.AspNet.WebApi NuGet исходного пакета кодом.
  2. Какой идентификатор фиксации соответствует версии 5.2.3 пакета NuGet.
  3. Какой файл * .nuspec был использован для создания пакета Microsoft.AspNet.WebApi?

Спасибо!

+1

Вот источник WebAPI, но не уверен, где .nuspec файл находится в хранилище. https://aspnetwebstack.codeplex.com/Source.Web.Http/ApiController.cs – Kiliman

ответ

2

Я искал то же самое, и я наконец нашел его. На этой странице перечислены версии и где они соответствуют в источнике. Это v.3.2.3, которое соответствует 5.2.3.

Repository Tags and Version Numbers

0

Скотт Hanselman: http://www.hanselman.com/blog/CreatingANuGetPackageIn7EasyStepsPlusUsingNuGetToIntegrateASPNETMVC3IntoExistingWebFormsApplications.aspx

POSTED ИЗБЕЖАТЬ LINK ТОЛЬКО ОТВЕТ!

КАК Я СДЕЛАЛ СВОЙ NuGet ПАКЕТ И ВЫ ДОЛЖНЫ СЛИШКОМ Скотт Hanselman:

Шага 0 - Принесите командную строку NuGet.exe здесь. Поместите его в Путь или где-нибудь.

Шаг 1 - Создайте папку для нового пакета, туда через линию и вводе команды запуска «NuGet спецификации»

C:\Users\Scott\Desktop\AddMvc3ToWebForms>nuget spec 
Created 'Package.nuspec' successfully. 

C:\Users\Scott\Desktop\AddMvc3ToWebForms>dir Package.nuspec 
Directory of C:\Users\Scott\Desktop\AddMvc3ToWebForms 

02/15/2011 02:23 AM    813 Package.nuspec 
       1 File(s)   813 bytes 

Теперь я изменил имя этого файла и редактировать его константы выглядит.

<?xml version="1.0"?> 
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> 
    <id>AddMvc3ToWebForms</id> 
    <version>0.4</version> 
    <authors>Scott Hanselman</authors> 
    <owners>Scott Hanselman</owners> 
    <iconUrl>http://www.hanselman.com/images/nugeticon.png</iconUrl> 
    <requireLicenseAcceptance>false</requireLicenseAcceptance> 
    <description>A totally unsupported way to quickly add ASP.NET MVC 3 support to your WebForms Application. Works on my machine.</description> 
    <tags>MVC MVC3 ASP.NET WebForms</tags> 
    </metadata> 
</package> 

Шаг 2 - Добавить товар в папку Content

Так как я хочу, чтобы мой пакет NuGet, чтобы добавить материал к папкам в моей целевой веб-приложений, я ставлю все, что я хочу в папке Content. Все, что в этом будет показано в корне моего целевого проекта. Это могут быть файлы CSS, JS, CS или VB, что угодно. Эти файлы будут удалены в проект, к которому применяется ваш пакет.

В моем проекте я взял папки из приложения MVC и поместил их в свою структуру папок NuGet. Итак, Content, Controllers, Models, Scripts, Views. Скопировал их прямо из существующего пустого проекта ASP.NET MVC.

Мой NuGet каталог, в котором я строю пакет

Шаг 3 - Решите, что должно быть предварительно обработаны

Однако, когда мой HomeController показывает в вашем проекте, Уважаемый читатель, я не» я хочу, чтобы это было в пространстве имен ScottMvcApplication! Вы хотите его в MvcApplication54 или независимо от вашего имени проекта. Мне нужно предварительно обработать источник немного, чтобы использовать контекст, имена, пространства имен и т. Д.

Для файлов, которые я хочу предварительно обработать автоматически с помощью NuGet, я добавляю расширение .pp. В моем примере HomeController.cs.pp.

препроцессор файлы с расширением .pp

Затем добавить несколько маркеров я хочу заменить на установки времени для этого пакета. Например $ rootnamespace $ или $ assemblyname $. Вы можете использовать любое свойство Project Studio Visual Studio для документов NuGet.

namespace $rootnamespace$.Controllers 
{ 
    public class HomeController : Controller 
    { 
     //snip 
    } 
} 

Шаг 4 - Решите, какие элементы XML необходимо объединить (обычно в сети.config)

Следующая предварительная обработка, которая является обычной, заключается в добавлении элементов в web.config. Это приятная небольшая функция NuGet, потому что вам просто нужно создать web.config.transform с новыми элементами, и он автоматически и без разрушения добавит (и удалит) их по мере необходимости. Вот мой web.config.transform, для справки. Обратите внимание, что это не полный web.config. Это тот, который я добавил в свой пакет в папке управления.

<configuration> 
    <appSettings> 
    <add key="ClientValidationEnabled" value="true"/>  
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
    </appSettings> 

    <system.web> 
    <compilation debug="true" targetFramework="4.0"> 
    <assemblies>  
    <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />  
    <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />  
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />  
    <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />  
    <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    </assemblies> 
    </compilation> 
    <pages> 
     <namespaces> 
     <add namespace="System.Web.Helpers" /> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Routing" /> 
     <add namespace="System.Web.WebPages"/> 
     </namespaces> 
    </pages> 
    </system.web> 
    <system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules runAllManagedModulesForAllRequests="true"/> 
    </system.webServer> 

    <runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> 
      <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="3.0.0.0" /> 
     </dependentAssembly> 
     </assemblyBinding> 
    </runtime> 
</configuration> 

Шаг 5 - Добавление любого сценария PowerShell, вам может понадобиться, особенно для добавления ссылок

Почти готово. Большинству пакетов не нужно много PowerShell, но некоторые делают. Вы можете установить install.ps1 и uninstall.ps1 и сделать много вещей. Они входят в папку «Инструменты», расположенную рядом с Контентом (не внутри).

Вот мой install.ps1.

ПРИМЕЧАНИЕ: В настоящее время нет возможности остановить установку пакета во время его возникновения, поэтому, если вы попытаетесь установить мою версию на NuGet 1.0, я просто предостерег вас и попрошу удалить. В будущем, вероятно, будет установлена ​​предварительная установка или проверка зависимостей. Следовательно, проверка версии там.

парам ($ INSTALLPATH, $ toolsPath, $ пакет, $ проект)

if ($host.Version.Major -eq 1 -and $host.Version.Minor -lt 1) 
{ 
    "NOTICE: This package only works with NuGet 1.1 or above. Please update your NuGet install at http://nuget.codeplex.com. Sorry, but you're now in a weird state. Please 'uninstall-package AddMvc3ToWebForms' now." 
} 
else 
{ 
    $project.Object.References.Add("Microsoft.CSharp"); 
    $project.Object.References.Add("System.Web.Mvc"); 
    $project.Object.References.Add("Microsoft.Web.Infrastructure"); 
    $project.Object.References.Add("System.Web.WebPages"); 
    $project.Object.References.Add("System.Web.Razor"); 
    $project.Object.References.Add("System.ComponentModel.DataAnnotations"); 
} 

Обратите внимание, что в (будущем) NuGet 1.2 не будет нужен этот код, я просто добавить ссылки в мой файл NuSpec напрямую.

Шаг 6 - Упаковать его

Вернитесь в командную строку и запустить NuGet пакет

C:\Users\Scott\Desktop\AddMvc3ToWebForms>nuget pack 
Attempting to build package from 'AddMvc3ToWebForms.nuspec'. 
Successfully created package 'C:\Users\Scott\Desktop\AddMvc3ToWebForms\AddMvc3ToWebForms.0.4.nupkg'. 

Шаг 7 - Представьте свой пакет

Далее, для входа в NuGet галерея (бета) и внести свой вклад в свой пакет. Просто пройдите через мастера и загрузите nupkg. Вы также можете получить ключ API и использовать инструмент командной строки, чтобы сделать это автоматически, возможно, как часть процесса сборки.

Посылаем мое приложение к NuGet Галерея

Вот и все. Если у вас есть библиотекарь с открытым исходным кодом

+0

это руководство для создания пакета NuGet, но все же оно не отвечает на мой вопрос: - где источники используется для создания пакета Microsoft.AspNet.WebApi NuGet? - какой .nuspec они использовали? –

+0

Что именно это не ответит? –

+0

Как я уже писал выше, он не отвечает на мой фактический вопрос: где я могу найти исходный пакет Microsoft.AspNet.WebApi NuGet, то, что зафиксировать в git-репозитории, соответствует версии 5.2.3 этого пакета, и там там команды создания пакета NuGet в их построить систему? –

Смежные вопросы