Ссылка на браузер с ASP.NET Core v1.0 в Visual Studio 2015 Update 3
Я использую Visual Studio 2015 Update 3 и хочу использовать функцию Browser Link с моим проектом ASP.NET Core v1.0 WebApp... но я не могу заставить Browser Link работать.
- Поддерживается ли поддержка браузера для проектов ASP.NET Core v1.0?
Я не могу найти много там, что касается использования Browser Link с ядром ASP.NET.
Мой проект работает нормально, но панель управления Browser Link всегда отображается как "Нет текущих подключений" при запуске как с отладкой, так и без нее.
В моем проекте .json я импортирую зависимость зависимости от браузера;
{
"dependencies": {
"Microsoft.Extensions.Configuration.FileProviderExtensions": "1.0.0-rc1-final",
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.0",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.EntityFrameworkCore": "1.0.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"Microsoft.NETCore.App": {
"version": "1.0.0",
"type": "platform"
},
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0"
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"publishOptions": {
"include": [
"wwwroot",
"web.config",
"Views",
"appsettings.json"
]
},
"scripts": {
"prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
Мой web.config;
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
<add name="Browser Link for HTML" path="*.html" verb="*"
type="System.Web.StaticFileHandler, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
resourceType="File" preCondition="integratedMode" />
</handlers>
- Для проекта ASP.NET Core v1.0, что еще мне нужно сделать, чтобы заставить работать с браузером?
Обновление 1
Я добавил в корневой элемент моего web.config следующее:
<appSettings>
<add key="vs:EnableBrowserLink" value="true"/>
</appSettings>
<system.web>
<compilation debug="true"></compilation>
</system.web>
Опция "Обновить связанные браузеры" по-прежнему отключена для меня.
![введите описание изображения здесь]()
Но все еще не работает для запуска с помощью Browser Link и см. подключение в панели мониторинга браузера.
Ответы
Ответ 1
Я также использую VS2015 Update 3.
Браузерная ссылка также поддерживается для основных проектов ASP.NET.
Добавьте следующий код в свой Startup.cs → Метод настройки:
app.UseBrowserLink();
Но если вы используете → .NET Core 1.0 - VS 2015 Tooling RC, то this может быть ваша проблема.
Установите appSetting "vs: EnableBrowserLink" на " true"
![введите описание изображения здесь]()
Задайте отладку компиляции true в файле web.config.
Браузерная ссылка будет отключена, если debug is false!
<system.web>
<compilation debug="true"></compilation>
</system.web>
Попробуйте нажать
"Обновленные связанные браузеры",
![введите описание изображения здесь]()
в моем случае соединения не появились первоначально, но после обновления!
После этого, когда вы наводите курсор на значок обновления, отображается всплывающая подсказка, показывающая подключенные браузеры, например:
![введите описание изображения здесь]()
В моем проекте .json у меня есть следующая настройка:
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
и активировать Browserlink:
![введите описание изображения здесь]()
Вы можете увидеть, загружена ли она на вкладке сети браузеров:
![введите описание изображения здесь]()
Ответ 2
У меня все еще были старые версии ядра .net, а также SDK. Я удалил их (из панели управления) и переустановил "Инструментальный просмотр 2" из: https://www.microsoft.com/net/core#windows
И начнет работать hey-presto BrowserLink.
Ответ 3
У меня возникла такая же проблема с созданием приложения .NET Core MVC из пустого шаблона, но я понял, что шаблон "Веб-приложение" работает для меня из коробки.
![Диалоговые диалоги основных шаблонов ASP.NET: выберите Empty, Web API или веб-приложение]()
Итак, я проверил все файлы конфигурации JSON, чтобы узнать, в чем были отличия.
![Проект веб-приложений: дополнительные файлы конфигурации - appsettings.json и bundleconfig.json]()
Начиная со дна, web.config между ними на самом деле идентичны, поэтому вам нечего туда добавлять.
В проекте веб-приложения Startup.cs имеет следующий код внутри метода Configure():
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
В проекте project.json вам уже сказали поставить следующее в разделе зависимостей:
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0"
bundleconfig.json просто сообщает приложению, как связывать и минимизировать JavaScript, так что это не влияет на BrowserLink.
Теперь этого следующего я не получу. appsettings.json не существует в пустом проекте, и вам сказали положить тег appsettings в ваш web.config. Поскольку MS пытается уйти от web.config, я подумал, что найду что-то о BrowserLink в этом appsettings.json. Нету:
}
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
}
}
Хорошо, что бы то ни было, в этот момент я попробую что угодно. Скопируйте текст, перезапустите Visual Studio, запустите мой проект (обязательно перейдите на страницу, которая не является просто статическим HTML) и...
![Ссылка на браузер работает!]()
При переходе на статическую HTML-страницу вы потеряете ссылку на браузер, но кроме этого, она работает очень хорошо. Мой совет: теперь, когда вы знаете, сколько головной боли это нужно сделать, никогда больше не начинайте с пустого проекта.