Web Essentials 浏览器 link 在 asp mvc 6 项目中不工作
web essentials browser link not working in asp mvc 6 project
我正在尝试让浏览器 link 正常工作,以便我可以在浏览器中使用 Web Essentials 工具栏。我希望在浏览器 link 的页面源代码底部看到一些代码,就像在 ASP.NET 4 项目中一样,但在 ASP.NET 5 中似乎并非如此。
有没有其他人设法让这个工作?在此先感谢您的帮助。
我正在使用 visual studio 2015 更新 1
我已经在管理员模式下尝试 运行 并且我已经关闭了防火墙,但是在 link 在 visual studio 中 运行 在调试模式下浏览器中仍然没有连接.
编辑
这个方法肯定被调用了
app.UseBrowserLink();
绝对引用了这个 nuget 包 Microsoft.VisualStudio.Web.BrowserLink.Loader
我试过重新安装 asp.net 5 rc1 和 visual studio 2015 pro 以及使用 visual studio 社区,但都不起作用。
我试过重新安装 IIS Express 10 和 8,但也不起作用。
这开始成为真正的痛苦。在浏览器中使用 F12 可以完成工作,但它真的很慢而且乏味
如果有人可以提供一些建议来尝试使这项工作正常进行,那就太好了。我觉得我已经用尽了所有选择。
这是我的 project.json:
{
"userSecretsId": "aspnet5-BusiHub.Web-ce0683d8-2598-4feb-99b6-82d6cf4e8028",
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"dependencies": {
"EntityFramework.Commands": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"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.Loader.IIS": "1.0.0-beta7",
"Microsoft.AspNet.Loader.IIS.Interop": "1.0.0-beta7",
"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.AspNet.WebApi": "5.2.3",
"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",
"System.Web.Optimization.Less": "1.3.4"
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel",
"ef": "EntityFramework.Commands"
},
"frameworks": {
"dnx451": {
"frameworkAssemblies": { }
}
},
"exclude": [
"wwwroot",
"node_modules"
],
"publishExclude": [
"**.user",
"**.vspscc"
],
"scripts": {
"prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
}
}
这是我的startup.cs
public class Startup
{
public Startup(IHostingEnvironment env)
{
// Set up configuration sources.
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
if (env.IsDevelopment())
{
// For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709
builder.AddUserSecrets();
}
builder.AddEnvironmentVariables();
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; set; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.AddMvc();
// Add application services.
services.AddTransient<IEmailSender, AuthMessageSender>();
services.AddTransient<ISmsSender, AuthMessageSender>();
services.AddTransient<ApplicationDbContextInitializer>();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public async void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, ApplicationDbContextInitializer dbContextInitializer)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
// Allow updates to your files in Visual Studio to be shown in the browser. You can use the Refresh
// browser link button in the Visual Studio toolbar or Ctrl+Alt+Enter to refresh the browser.
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
// For more details on creating database during deployment see http://go.microsoft.com/fwlink/?LinkID=615859
try
{
using (var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>()
.CreateScope())
{
serviceScope.ServiceProvider.GetService<ApplicationDbContext>()
.Database.Migrate();
}
}
catch { }
}
app.UseIISPlatformHandler(options => options.AuthenticationDescriptions.Clear());
app.UseStaticFiles();
app.UseIdentity();
// To configure external authentication please see http://go.microsoft.com/fwlink/?LinkID=532715
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
// Seed the database with sample data - admin roles, admin users etc
await dbContextInitializer.InitializeDataAsync();
}
// Entry point for the application.
public static void Main(string[] args) => WebApplication.Run<Startup>(args);
}
更新
我已经为 chrome 安装了 livereload 插件,并按照 vendettamit 下面评论中的建议在 gulp 中配置了 livereload。当我修改我的 CSS/Less 文件时,Chrome 浏览器现在正在更新。由于浏览器 link 无法正常工作,我仍然缺少 Web 基础设计和检查工具,但我希望这会在未来对 ASP.NET 框架 and/or visual studio 的更新中有所改变。
我的 gulp 脚本,如果有人遇到同样的问题:
/// <binding BeforeBuild='min, less' Clean='clean' />
"use strict";
var gulp = require("gulp"),
rimraf = require("rimraf"),
concat = require("gulp-concat"),
cssmin = require("gulp-cssmin"),
uglify = require("gulp-uglify"),
less = require("gulp-less"),
livereload = require("gulp-livereload");
var project = require('./project.json');
var paths = {
webroot: "./wwwroot/"
};
paths.js = paths.webroot + "js/**/*.js";
paths.minJs = paths.webroot + "js/**/*.min.js";
paths.css = paths.webroot + "css/**/*.css";
paths.minCss = paths.webroot + "css/**/*.min.css";
paths.concatJsDest = paths.webroot + "js/site.min.js";
paths.concatCssDest = paths.webroot + "css/site.min.css";
gulp.task("clean:js", function (cb) {
rimraf(paths.webroot + "/js/site.min.js", cb);
rimraf(paths.webroot + "/js/site.js", cb);
});
gulp.task("clean:css", function (cb) {
rimraf(paths.webroot + "/css/site.min.css", cb);
rimraf(paths.webroot + "/css/site.css", cb);
});
gulp.task("clean", ["clean:js", "clean:css"]);
gulp.task("min:js", function () {
return gulp.src([paths.js, "!" + paths.minJs], { base: "." })
.pipe(concat(paths.concatJsDest))
.pipe(uglify())
.pipe(gulp.dest("."));
});
gulp.task("min:css", function () {
return gulp.src([paths.css, "!" + paths.minCss])
.pipe(concat(paths.concatCssDest))
.pipe(cssmin())
.pipe(gulp.dest("."));
});
gulp.task("min", ["min:js", "min:css"]);
gulp.task("less", ["clean:css"], function () {
return gulp.src('Styles/*.less')
.pipe(concat('site.less'))
.pipe(less())
.pipe(gulp.dest(paths.webroot + '/css'))
.pipe(livereload());
});
gulp.task("scripts", ["clean:js"], function() {
return gulp.src('Scripts/*.js')
.pipe(concat('site.js'))
.pipe(gulp.dest(paths.webroot + '/js'));
});
gulp.task("all", ["less", "scripts"]);
gulp.task('watch', function() {
livereload.listen();
gulp.watch('styles/*less', ['less']);
});
我不确定 RC 版本是否附带 Live reload。有一个问题解决了浏览器 link 的类似问题。意思是你可以尝试 this chrome 插件进行实时重新加载。
您也可以尝试给定的解决方案,但看起来像是手动刷新。
我正在尝试让浏览器 link 正常工作,以便我可以在浏览器中使用 Web Essentials 工具栏。我希望在浏览器 link 的页面源代码底部看到一些代码,就像在 ASP.NET 4 项目中一样,但在 ASP.NET 5 中似乎并非如此。
有没有其他人设法让这个工作?在此先感谢您的帮助。
我正在使用 visual studio 2015 更新 1
我已经在管理员模式下尝试 运行 并且我已经关闭了防火墙,但是在 link 在 visual studio 中 运行 在调试模式下浏览器中仍然没有连接.
编辑
这个方法肯定被调用了
app.UseBrowserLink();
绝对引用了这个 nuget 包 Microsoft.VisualStudio.Web.BrowserLink.Loader
我试过重新安装 asp.net 5 rc1 和 visual studio 2015 pro 以及使用 visual studio 社区,但都不起作用。
我试过重新安装 IIS Express 10 和 8,但也不起作用。
这开始成为真正的痛苦。在浏览器中使用 F12 可以完成工作,但它真的很慢而且乏味
如果有人可以提供一些建议来尝试使这项工作正常进行,那就太好了。我觉得我已经用尽了所有选择。
这是我的 project.json:
{
"userSecretsId": "aspnet5-BusiHub.Web-ce0683d8-2598-4feb-99b6-82d6cf4e8028",
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"dependencies": {
"EntityFramework.Commands": "7.0.0-rc1-final",
"EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
"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.Loader.IIS": "1.0.0-beta7",
"Microsoft.AspNet.Loader.IIS.Interop": "1.0.0-beta7",
"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.AspNet.WebApi": "5.2.3",
"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",
"System.Web.Optimization.Less": "1.3.4"
},
"commands": {
"web": "Microsoft.AspNet.Server.Kestrel",
"ef": "EntityFramework.Commands"
},
"frameworks": {
"dnx451": {
"frameworkAssemblies": { }
}
},
"exclude": [
"wwwroot",
"node_modules"
],
"publishExclude": [
"**.user",
"**.vspscc"
],
"scripts": {
"prepublish": [ "npm install", "bower install", "gulp clean", "gulp min" ]
}
}
这是我的startup.cs
public class Startup
{
public Startup(IHostingEnvironment env)
{
// Set up configuration sources.
var builder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
if (env.IsDevelopment())
{
// For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709
builder.AddUserSecrets();
}
builder.AddEnvironmentVariables();
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; set; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.AddMvc();
// Add application services.
services.AddTransient<IEmailSender, AuthMessageSender>();
services.AddTransient<ISmsSender, AuthMessageSender>();
services.AddTransient<ApplicationDbContextInitializer>();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public async void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, ApplicationDbContextInitializer dbContextInitializer)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
if (env.IsDevelopment())
{
// Allow updates to your files in Visual Studio to be shown in the browser. You can use the Refresh
// browser link button in the Visual Studio toolbar or Ctrl+Alt+Enter to refresh the browser.
app.UseBrowserLink();
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
// For more details on creating database during deployment see http://go.microsoft.com/fwlink/?LinkID=615859
try
{
using (var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>()
.CreateScope())
{
serviceScope.ServiceProvider.GetService<ApplicationDbContext>()
.Database.Migrate();
}
}
catch { }
}
app.UseIISPlatformHandler(options => options.AuthenticationDescriptions.Clear());
app.UseStaticFiles();
app.UseIdentity();
// To configure external authentication please see http://go.microsoft.com/fwlink/?LinkID=532715
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
// Seed the database with sample data - admin roles, admin users etc
await dbContextInitializer.InitializeDataAsync();
}
// Entry point for the application.
public static void Main(string[] args) => WebApplication.Run<Startup>(args);
}
更新
我已经为 chrome 安装了 livereload 插件,并按照 vendettamit 下面评论中的建议在 gulp 中配置了 livereload。当我修改我的 CSS/Less 文件时,Chrome 浏览器现在正在更新。由于浏览器 link 无法正常工作,我仍然缺少 Web 基础设计和检查工具,但我希望这会在未来对 ASP.NET 框架 and/or visual studio 的更新中有所改变。
我的 gulp 脚本,如果有人遇到同样的问题:
/// <binding BeforeBuild='min, less' Clean='clean' />
"use strict";
var gulp = require("gulp"),
rimraf = require("rimraf"),
concat = require("gulp-concat"),
cssmin = require("gulp-cssmin"),
uglify = require("gulp-uglify"),
less = require("gulp-less"),
livereload = require("gulp-livereload");
var project = require('./project.json');
var paths = {
webroot: "./wwwroot/"
};
paths.js = paths.webroot + "js/**/*.js";
paths.minJs = paths.webroot + "js/**/*.min.js";
paths.css = paths.webroot + "css/**/*.css";
paths.minCss = paths.webroot + "css/**/*.min.css";
paths.concatJsDest = paths.webroot + "js/site.min.js";
paths.concatCssDest = paths.webroot + "css/site.min.css";
gulp.task("clean:js", function (cb) {
rimraf(paths.webroot + "/js/site.min.js", cb);
rimraf(paths.webroot + "/js/site.js", cb);
});
gulp.task("clean:css", function (cb) {
rimraf(paths.webroot + "/css/site.min.css", cb);
rimraf(paths.webroot + "/css/site.css", cb);
});
gulp.task("clean", ["clean:js", "clean:css"]);
gulp.task("min:js", function () {
return gulp.src([paths.js, "!" + paths.minJs], { base: "." })
.pipe(concat(paths.concatJsDest))
.pipe(uglify())
.pipe(gulp.dest("."));
});
gulp.task("min:css", function () {
return gulp.src([paths.css, "!" + paths.minCss])
.pipe(concat(paths.concatCssDest))
.pipe(cssmin())
.pipe(gulp.dest("."));
});
gulp.task("min", ["min:js", "min:css"]);
gulp.task("less", ["clean:css"], function () {
return gulp.src('Styles/*.less')
.pipe(concat('site.less'))
.pipe(less())
.pipe(gulp.dest(paths.webroot + '/css'))
.pipe(livereload());
});
gulp.task("scripts", ["clean:js"], function() {
return gulp.src('Scripts/*.js')
.pipe(concat('site.js'))
.pipe(gulp.dest(paths.webroot + '/js'));
});
gulp.task("all", ["less", "scripts"]);
gulp.task('watch', function() {
livereload.listen();
gulp.watch('styles/*less', ['less']);
});
我不确定 RC 版本是否附带 Live reload。有一个问题解决了浏览器 link 的类似问题。意思是你可以尝试 this chrome 插件进行实时重新加载。
您也可以尝试给定的解决方案