最近使用 .NET Core 遇到的一些坑
最近.NET Core升级到2.0后开始慢慢捣鼓的多了起来,但遇到了不少坑,所以特来记录下。
第一个坑 条件编译符
我们在编写一些方法的时候通常会为Debug模式增加一些输出日志等以便我们检查,也会为Release模式增加或修改一些特定的参数,但今天我在写这些的时候就遇到了这个坑
#if !DEBUG #endif 中间的代码 不能我怎么更改配置环境 始终是灰色,这让我开始怀疑,难道VS 2017 的.NET Core 不支持条件编译符了?
于是新建了个控制台程序测试了以下,但又发现还是起作用了的如下:
这里就可以 看到 我明明不是Debug环境啊,可是 #if DEBUG的还是正常色,!DEBUG的还是灰色,直接F5运行后 发现结果出乎我意外
结果居然是正常的,如何我又怀疑是我vs 更新后出问题了,于是我又用.net framework 旧格式创建一个了一个项目发现旧的又是好的
第二个坑 .NET Core MVC下的部分文件无法下载
使用.NET Core MVC创建了一个站点,本来使用的还蛮好的,但后来配备了app 于是就直接把apk 文件放到 网站的wwwroot目录下了,改了个名字就叫app.apk,然后访问: http://127.0.0.1/app.apk 返回给我一个404 not find
因为搞iis 还是比较多,于是马上想到一个是每天添加 mime导致,于是去iis站点里面增加,发现以及存在了
瞬间就懵逼了,于是就从到请求筛选里面去找找是不是在那被禁止了 但发现也没用,于是又把文件改成app.apk.zip试了下,发现zip是可以下载的
第三个坑 .NET Core 2.0 MVC 的试图文件
从2.0开始貌似试图文件被直接打包成了dll文件,不在像传统的mvc一样发布后还是shtml文件,而是被编译成了dll文件 命名规则是 项目名称.PrecompiledViews.dll
第四个坑 .NET Core 引用DLL问题
我们以前开发总是把一些常用的某些功能性的单独做成一个类库 编译成dll 后供项目使用,但这样做好像在.NET Core的项目中行不通
起初我写了一个公共的类库,在解决方案里面又新增了一个类库,去引用公共类库的项目,这样做的时候并没有什么异常,但当我启动另外一个vs创建一个新的解决方案添加项目在去引用公共类库的dll后 在vs里面写代码都很正常,代码提示也都有
但是一按F5 调试就出来坑了,报未能找到类型或命名空间
解决方案是把公共类库打包 生成NuGet包
然后通过管理NuGet包添加引用,但很多情况下 一些类库我并不想都放到nuget.org上面,可以把生成的nuget包放置Microsoft Visual Studio Offline Packages 离线包里面
放到Microsoft Visual Studio Offline Packages对应的目录即可
最近使用 .NET Core 遇到的一些坑的更多相关文章
- 解决VS Code调试.NET Core应用遇到的坑
为什么会有”坑“ 博客园里有好多介绍怎么使用VS Code以及调试.NET Core的文章,但是都是基于直接构建Asp.Net Core Mvc单项目的,有什么区别呢! (1).我们这次遇到的坑是在多 ...
- EF Core HasQueryFilter 的小坑
这是今天在实际项目中遇到的一个问题,Entity Framework Core 2.2 生成了下面的 SQL 语句,INNER JOIN 部分丑陋的 SQL 语句让人无法忍受. SELECT TOP( ...
- NET Framework项目移植到NET Core上踩的坑(1)
本文章向大家介绍NET Framework项目移植到NET Core上遇到的一系列坑,主要包括NET Framework项目移植到NET Core上遇到的一系列坑使用实例.应用技巧.基本知识点总结和需 ...
- Keycloak & Asp.net core webapi 整合跳坑之旅
前言 之前,一直使用IdentityServer4作为.net core程序的外部身份认证程序,ID4的优点自不必说了,缺点就是缺乏完善的管理界面. 后来,学习java quarkus框架时,偶然遇到 ...
- 在Linux上用supervisor运行ASP.NET Core站点的一个坑
将一个ASP.NET Core站点在Linux服务器上以self-contained部署方式发布出来后,直接在终端上运行下面的命令,站点可以正常运行. /data/AboutUs/bin/Debug/ ...
- .net core建站踩坑记录
系统:win10 VS版本:2017 .NET Core 版本: 1.1 零.读取配置文件 参考:http://www.tuicool.com/articles/QfYVBvi 此版本无需添加其他组件 ...
- .NET CORE 2.0 踩坑记录之ConfigurationManager
在之前.net framework 中使用的ConfigurationManager还是很方便的,不过在.NET CORE 2.0中SDK默认已经不存在ConfigurationManager. 那么 ...
- net core 环境部署的坑
1.supervisor “no such file” error. 检查指令是否正确,路径.dotnet环境是否正常 2.Couldn‘t find a valid ICU package inst ...
- 又踩.NET Core的坑:在同步方法中调用异步方法Wait时发生死锁(deadlock)
之前在将 Memcached 客户端 EnyimMemcached 迁移 .NET Core 时被这个“坑”坑的刻骨铭心(详见以下链接),当时以为只是在构造函数中调用异步方法(注:这里的异步方法都是指 ...
随机推荐
- python-ansible api2.0 多进程执行不同的playbook
自动化运维工具:ansible 多进程调用ansible api的应用场景: 应用系统检查 一个应用系统可能具有20—50台服务器的集群,初步的系统层面检查可以用一个统一的playbook来检查, ...
- linux 下 Fatal error: Class ‘mysqli’ not found in
先试用这种方法 http://blog.csdn.net/u010429424/article/details/43063211 我不知道自己安装的php 没他们路径,所以用了以下这种方法处理,并且不 ...
- python开源项目及示例代码(转)
本页面是俺收集的各种 Python 资源,不定期更新. 下面列出的各种 Python 库/模块/工具,如果名称带超链接,说明是第三方的:否则是 Python 语言内置的. 1 算法 1.1 字符串处理 ...
- sed 实践案例 (不定期更新)
删除每行第一个字符 sed -r 's/^.//g' /etc/passwd 删掉每行第二个字符 sed -r 's/^(.)(.)/\1/g' /etc/passwd 删掉每行最后一个字符 sed ...
- 80C51 K1控制D1发光
#include "reg52.h" typedef unsigned char u8; typedef unsigned int u16; sbit led = P2^0; sb ...
- 一起来学Go --- (go的枚举以及数据类型)
枚举 枚举指一系列的相关的常量,比如下面关于一个星期的中每天的定义,通过上篇博文,我们可以用在const后跟一对圆括号的方式定义一组常量,这种定义法在go语言中通常用于定义枚举值.go语言并不支持众多 ...
- The C++ Programming Language 学习笔记 第6章 表达式和语句
1.关于strcpy函数. 书中说c风格的字符串尽量少用,strcpy这样的函数应该也要少用.这里讲这个函数主要是要通过本章课后练习第十题来讲一下前面提及的要点.巩固一下前几章的知识.写了一段,本来感 ...
- Java基础---泛型、集合框架工具类:collections和Arrays
第一讲 泛型(Generic) 一.概述 1.JDK1.5版本以后出现的新特性.用于解决安全问题,是一个类型安全机制. 2.JDK1.5的集合类希望在定义集合时,明确表明你要向集合中装入那种类 ...
- 【详细资料】ICN6202:MIPI DSI转LVDS芯片简介
ICN6202功能MIPI DSI转LVDS,分辨率1920*1200,封装QFN40
- C# .NET Socket 简单实用框架
背景: 首先向各位前辈,大哥哥小姐姐问一声好~ 这是我第一次写博客,目前为一个即将步入大四的学生,上学期在一家公司实习了半年,后期发现没有动力,而且由于薪水问题(废话嘛),于是跳槽到这家新的公司. 说 ...