У нас есть проект ASP.NET MVC 5, который мы разрабатываем, который зависит от проектов из другого решения. Другое решение - это библиотеки классов, которые являются общими, и мы публикуем их как пакеты NuGet. Когда мы выпускаем, мы собираем проект и берем его из репозитория NuGet, но пока мы находимся в разработке, мы берем ссылку из папки bin этого проекта.
Чтобы получить эту работу, мы выполнили "взломать" файл csproj из проекта ASP.NET(мы вручную отредактировали файл csproj xml и изменили ссылку):
<Reference Include="Common.Utilities, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath Condition=" '$(Configuration)' == 'Debug' ">..\..\..\Common\Common.Utilities\bin\$(Configuration)\Common.Utilities.dll</HintPath>
<HintPath Condition=" '$(Configuration)' != 'Debug' ">..\..\..\..\ExtrnBin\NuGetPackages\Common.Utilities.1.0.0.8\lib\net451\Common.Utilities.dll</HintPath>
</Reference>
поэтому при компиляции отладки он берет из папки проекта библиотеки классов, и когда мы вычисляем выпуск, он берет с загруженного NuGet. Это очень полезно для быстрого развития, поскольку нам не нужно повторно публиковать новый NuGet для каждого изменения.
Теперь мы тестируем ASP.NET 5, а зависимости больше не определены в файле csproj
, а в файле project.json
. Поэтому, если мы добавим ссылку, мы получим что-то вроде этого в project.json
:
"dependencies": {
"EntityFramework.Commands": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"Microsoft.ApplicationInsights.AspNet": "1.0.0-rc1",
"Microsoft.AspNet.Authentication.Cookies": "1.0.0-rc1-final",
"Microsoft.AspNet.Diagnostics.Entity": "7.0.0-rc1-final",
"Microsoft.AspNet.Identity.EntityFramework": "3.0.0-rc1-final",
"Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
"Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
"Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
"Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
"Microsoft.AspNet.Tooling.Razor": "1.0.0-rc1-final",
"Microsoft.Extensions.CodeGenerators.Mvc": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
"Microsoft.Extensions.Configuration.UserSecrets": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc1-final",
"Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-rc1-final",
"Common.Utilities": "1.0.0.8-*"
}
он также создает папку-оболочку и копирует DLL в папку lib\dnx\451
.
Как мы можем настроить что-то похожее на то, что у нас было раньше, чтобы поддерживать 2 конфигурации сборки?