我在调试模式下使用Visual Studio 2010,并且未选中"优化代码".我无法快速监视(或悬停)调试器中的任何变量.我收到此错误"无法计算表达式,因为当前方法的代码已经过优化".
即使是像:int i = -3这样的行,快速监视i,我得到"无法获得本地或参数'i'的值,因为它在指令指针处不可用,可能是因为它已被优化掉了."
在类似问题中引用的此链接似乎不适用.
我缺少一个设置吗?
添加到项目后,我无法在Visual Studio 2010中打开CSS文件.
它显示以下错误:
操作无法完成.未指定错误.
即使我尝试直接在网页中编辑嵌入式CSS,也不会出现IntelliSense.
如何在Visual Studio中删除空行?
我是ASP.NET MVC(3)的新手,并且很难解决Visual Studio中的构建错误:
找不到类型或命名空间名称'DbContext'(您是否缺少using指令或程序集引用?)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
namespace MyProjectName.Models
{
public class MachineModel
{
// name
[Required]
[Display(Name = "Nom de la machine")]
public string Name { get; set; }
// IP
[Required]
[RegularExpression(@"(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",
ErrorMessage = "Donnez une adresse IPv4 valide.")]
[Display(Name = "Adresse IP de la machine")]
public string IP { get; set; }
}
public class MachineDbContext : DbContext
{
public DbSet<MachineModel> Machines{ get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
我得到的两个错误是: …
asp.net-mvc entity-framework visual-studio-2010 visual-studio asp.net-mvc-3
VS2010:
在VB中,我可以将光标放在现有方法的参数括号中并键入一个"空格",这将显示工具提示,其中包含我所参数的参数.在C#中不是这种情况.我必须删除包含参数的整个括号,然后重新键入左括号,以显示此工具提示.是否有一些快捷方式或设置来改变这种行为?我尝试按ctrl,shift,alt,但它没有效果.
Visual Studio中是否有键盘快捷键(除了CTRL+ TAB和选择之外)会将我从文档中直接带入解决方案资源管理器?我不想自定义任何快捷方式或更改任何默认行为.
我努力寻找一种方法,为使用Qt和Visual Studio 2010提供稳定的解决方案,因此在收集了所有信息和一些反复试验后,我想将我的解决方案写入指南.
似乎使用为Visual Studio 2008构建的二进制文件可能在某些特殊情况下工作,但我发现它们无法工作.在我的情况下,他们编译好,但他们产生运行时错误,如下所示:

或者从Visual Studio 2010启动时:

更新:我发现一篇博客文章分析了为什么它适用于某些人,而不适用于其他人.总之,这取决于您是否在同一台计算机上安装了Visual Studio 2008. http://blog.paulnettleship.com/2010/11/11/troubleshooting-visual-studio-2010-and-qt-4-7-integration/
最重要的是(我愚蠢地没有意识到),如果你没有安装Visual Studio 2008,你就不能使用Visual Studio 2008编译的库和dll(可在Qt网页上找到).原因是你下载的Qt SDK是一个调试版本,它依赖于VC9.0 DebugCRT,这意味着它需要安装Visual C++ 2008 Debug Runtime,它不能作为可再发行的安装程序使用.安装DebugCRT的唯一方法是安装整个Visual Studio 2008.
首先,我为这个问题的长度道歉.
我是IronScheme的作者.最近我一直在努力发出不错的调试信息,以便我可以使用'native'.NET调试器.
虽然这部分成功,但我遇到了一些问题.
第一个问题与踩踏有关.
由于Scheme是一种表达式语言,一切都倾向于用括号括起来,不像主要的.NET语言似乎是基于语句(或行).
原始代码(Scheme)看起来像:
(define (baz x)
(cond
[(null? x)
x]
[(pair? x)
(car x)]
[else
(assertion-violation #f "nooo" x)]))
Run Code Online (Sandbox Code Playgroud)
我故意在换行符上列出每个表达式.
发出的代码转换为C#(通过ILSpy),如下所示:
public static object ::baz(object x)
{
if (x == null)
{
return x;
}
if (x is Cons)
{
return Builtins.Car(x);
}
return #.ironscheme.exceptions::assertion-violation+(
RuntimeHelpers.False, "nooo", Builtins.List(x));
}
Run Code Online (Sandbox Code Playgroud)
如你所见,非常简单.
注意:如果代码在C#中转换为条件表达式(?:),那么整个过程只需要一个调试步骤,请记住这一点.
这是带有源和行号的IL输出:
.method public static object '::baz'(object x) cil managed
{
// Code size 56 (0x38)
.maxstack 6
.line 15,15 : 1,2 ''
//000014:
//000015: …Run Code Online (Sandbox Code Playgroud) 我想知道那些getter和setter声明之间的区别是什么,以及是否有一个首选方法(以及为什么).第一个可以由Visual Studio自动生成.其他人怎么样?谢谢
1
string _myProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)
第2
string _myProperty;
public string myProperty
{
get { return _myProperty; }
set { _myProperty = value; }
}
Run Code Online (Sandbox Code Playgroud)
第3
string _myProperty;
public string getMyProperty()
{
return this._myProperty;
}
public void setMyProperty(string value)
{
this._myProperty = value;
}
Run Code Online (Sandbox Code Playgroud) 我无法使用强名称密钥签名来构建项目 - 标题中的消息总是会出现.
是的,项目最初是从另一台机器复制而来的.但是,即使我通过"项目属性"中的"签名"选项卡添加新密钥,仍会显示此错误.
我尝试以管理员身份运行Visual Studio,并尝试手动将密钥添加到Windows证书库.
救命!
编辑:我没有得到一个新项目的错误,但我很想让这个现有的项目工作.即使我创建了新证书,它也无法工作!
c# ×3
.net ×2
asp.net-mvc ×1
build ×1
c++ ×1
clr ×1
code-signing ×1
debugging ×1
intellisense ×1
line ×1
qt ×1
regex ×1
strongname ×1