小编Rob*_*ner的帖子

使用Grunt,Bower,Gulp,NPM和Visual Studio 2015 for ASP.NET 4.5项目

Visual Studio 2015内置支持Grunt,Bower,Gulp和NPM for ASP.NET 5项目等工具.

但是,当我使用Visual Studio 2015创建ASP.NET 4.5.2项目时,它不使用这些工具.我想使用bower而不是nuget来管理客户端软件包.

我可以在Visual Studio 2013中找到有关使用这些工具的信息(例如,请参阅问题).但我想Visual Studio 2015的程序是不同的,因为它内置了对这些工具的支持.

asp.net asp.net-4.5 bower gulp visual-studio-2015

90
推荐指数
1
解决办法
3万
查看次数

VS2010不会在64位版本的Windows上的WinForms应用程序中显示未处理的异常消息

当我创建一个新项目时,我对未处理的异常会有一个奇怪的行为.这就是我可以重现问题的方法:

1)创建一个新的Windows窗体应用程序(C#,. NET Framework 4,VS2010)

2)将以下代码添加到Form1_Load处理程序:

int vara = 5, varb = 0;
int varc = vara / varb;
int vard = 7;
Run Code Online (Sandbox Code Playgroud)

我希望VS中断并在第二行显示未处理的异常消息.但是,会发生的是第三行只是跳过而没有任何消息,应用程序一直在运行.

我现有的C#项目没有这个问题.所以我想我的新项目是用一些奇怪的默认设置创建的.

有没有人知道我的项目有什么问题?

我试过检查Debug-> Exceptions中的方框.但即使我在try-catch块中处理异常,执行也会中断; 这也不是我想要的.如果我没记错的话,在这个对话框中有一个名为"未处理的异常"的列或者类似的东西,这会让我感到非常兴奋.但在我的项目中只有一列("Thrown").

c# exception-handling visual-studio-2010

76
推荐指数
2
解决办法
2万
查看次数

Boost.Chrono vs. Boost.Date_Time

使用Boost版本1.47,引入了Chrono库.Boost.Chrono是否意味着替代Boost.Date_Time?

如果没有,它们之间有什么区别,我应该在什么时候使用?

我应该何时考虑在现有项目中用Boost.Chrono替换Boost.Date_Time?

c++ boost

32
推荐指数
1
解决办法
6311
查看次数

在GCC中抑制-Wunknown-pragmas警告

我试图忽略来自某些第三方头文件的警告,如下所示:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunknown-pragmas"
#pragma GCC diagnostic ignored "-Wreorder"

#include <some_3rd_party_header.h>

#pragma GCC diagnostic pop
Run Code Online (Sandbox Code Playgroud)

这种方法似乎总体上起作用,但不适用于未知的pragma警告(我仍然得到它们).

为什么它适用于其他警告但不适用于此警告?谁能证实这种行为?

我使用的是G ++(版本4.7.1)与-Wall-std=c++0xDebian的下.

gcc warnings pragma suppress-warnings

21
推荐指数
1
解决办法
9742
查看次数

当C++中的switch语句中没有处理所有枚举值时,编译时断言

当不是在switch语句中处理所有可能的枚举值时,我想得到编译器警告或错误.当然,我可以添加一个带有断言的默认情况,并且(最终)在运行时获得错误.但是我想在编译时遇到错误.

我不确定这是否可能与C++有关,但也许有人知道一个技巧......

编辑:使用-Wswitch似乎是GCC的解决方案.VS2010有类似的东西吗?(我没有使用GCC).

Edit2:好的,我找到了VC++(VS2010)的解决方案:

C4062当缺少值并且未提供默认情况时,启用警告会发出警告.

C4061即使提供了默认情况,启用警告也会在缺少值时发出警告.

c++

17
推荐指数
3
解决办法
3776
查看次数

我们还需要Richter的AsyncEnumerator吗?

最近我偶然发现了AsreyEnumerator类表格Jeffrey Richter的Power Threading Library,它似乎解决了我在编写异步内容时经常遇到的几个问题.

这个类的想法已经存在了很长一段时间了,我想知道当前版本的.NET/C#现在是否内置了对这种机制的支持,或者是否仍然需要依赖第三方库?或者也许新版本的.NET有一些替代方法可以像Richter的AsyncEnumerator那样简化异步编程?

或者换句话说:今天有没有理由不开始使用Richter的AsyncEnumerator?

编辑:

一些链接与AsyncEnumerator的信息:

c# asynchronous

12
推荐指数
2
解决办法
4059
查看次数

使用Asp.Net Core进行自我更新/卷影复制

我正在编写一个Asp.Net Core应用程序,该应用程序应该能够自行更新(在运行时替换自己的二进制文件).

这篇MSDN文章用经典的.Net框架描述了阴影复制,这正是我所需要的.但.Net Core中缺少整个AppDomain的东西.

所以我的问题是:

  • 在.Net Core中是否有另一种方法可以启用阴影复制程序集?
  • .Net Core中是否有其他机制可以构建自我更新的应用程序?

shadow-copy auto-update appdomain .net-core asp.net-core

12
推荐指数
2
解决办法
1346
查看次数

确定需要哪个.NET Core运行时

我发现了一些有关.NET Core SDK /运行时/工具版本控制困难的有趣文章,例如:

但是我仍然不知道如何在实践中处理所有这些:

  1. 给定一个具有许多.Net Core依赖项的项目.如何确定最终用户计算机上需要提供哪个版本的运行时?
  2. 运行时版本是否需要完全匹配,或者最终用户计算机上安装的运行时是否比所需版本更新?
  3. 假设我想坚持运行时的某些LTS版本.如何确定我需要引用的软件包的版本?如何确保没有引用更新的包?

哦,还有一个:

  1. 一旦我知道最终用户机器上需要哪个运行时版本,我如何(以编程方式)确定该版本的运行时(或更新的,向后兼容的)是否可用?

.net-core asp.net-core

11
推荐指数
1
解决办法
3823
查看次数

使用std :: mutex而不是boost :: mutex时出现未处理的异常

我试图摆脱代码中的一些boost依赖项,而是使用新的C++ 11特性(Visual Studio 2013).

在我的组件之一我曾经boost::mutex一起boost::lock_guard<boost::mutex>和一切工作正常.当我std::mutex一起使用时std::lock_guard<std::mutex>,我从返回时收到以下错误main().

GrabberTester.exe中0x7721E3BE(ntdll.dll)的未处理异常:0xC0000005:访问冲突读取位置0xA6A6B491.

真正的项目非常复杂,因此难以提供完整的工作代码示例来重现此问题.在我的真实项目中,互斥体用在一个在运行时加载的共享库中(但是在我返回时应该已经卸载了它main()).

我的问题是:

  • 是否boost::mutexstd::mutex设计表现完全相同?
  • 如果没有,有什么区别?我需要什么,要记住使用时std::mutex代替boost::mutex
  • 在共享库中,我正在使用boost::thread框架创建线程.可能std::mutex只能用于std::threads并且与boost::threads 不兼容吗?

编辑:

我注意到的另一件事是:当我卸载动态加载的共享库时,这需要一些时间.(DLL访问硬件,干净地关闭所有内容需要一些时间).当我切换到std::mutex它时,看起来几乎可以立即卸载DLL,但程序然后在返回时崩溃main().我的印象是问题std::mutex特别是在DLL的上下文中.

编辑2:

应用程序和DLL都是使用v120工具集在Debug配置中新建的,并与运行时库(/ MTd)静态链接.

编辑3:

下面你可以找到callstack.例外似乎来自驱动程序中的某个地方.只是偶然我发现它与我使用的互斥锁的实现有关.

ntdll.dll!7721e3be()
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll]
ntdll.dll!7721e023()
kernel32.dll!76b014ad()
msvcr100.dll!71b0016a()
PS1080.dll!oniDriverDestroy() Line 29
OpenNI2.dll!oni::implementation::DeviceDriver::~DeviceDriver() Line 95
OpenNI2.dll!oni::implementation::Context::shutdown() Line 324
OpenNi2Grabber.dll!openni::OpenNI::shutdown() Line …
Run Code Online (Sandbox Code Playgroud)

mutex unhandled-exception openni c++11 boost-mutex

10
推荐指数
2
解决办法
5886
查看次数

无法从uint32_t*转换为LPDWORD

我正在尝试调用Windows API函数GetExitCodeProcess,该函数将LPDWORD第二个参数作为其第二个参数.

根据MSDN,LPDWORD是一个指向无符号32位值的指针.所以我试图传递一个uint32_t*,但编译器(MSVC 11.0)对它不满意:

错误C2664:'GetExitCodeProcess':无法将参数2从'uint32_t*'转换为'LPDWORD'

也是一个static_cast没有帮助.这是为什么?reinterpret_cast在这种情况下使用a是否安全?

c++ winapi casting

9
推荐指数
1
解决办法
3507
查看次数