Tag: visual studio 2012

自定义MSBuild任务:如何在任务仍在运行时刷新VS2012输出窗口中的日志记录?

我有一个自定义的MSBuild任务,需要一些时间才能完成。 它使用Log.LogMessage()或BuildEngine.LogMessageEvent() (两者都尝试)输出进度。 我的问题是,在任务完成之前,所有输出都不会出现在VS2012输出窗口中,从而使进度更新无效。 我希望在任务运行时立即显示输出。 我发现各种线程解释经常调用Application.DoEvents() ,但这似乎并没有解决问题(也许它只适用于VS2010及之前?)。

读取xml节点属性

我有一个像这样的节点的xml文档, 我想要做的是获取文档中存在的每个ITEM节点的所有id的属性值。 那么,我该怎么做呢? 编辑:我尝试过这种方式并没有用: XmlDocument Doc = new XmlDocument(); Doc.Load(“example.xml”); XmlNodeList nodeList = Doc.SelectNodes(“/ITEM”); foreach (XmlNode node in nodeList) { string id = node.Attributes[“id”].Value; Console.WriteLine(id); }

如何检查dataGridView checkBox是否被选中?

我是编程和C#语言的新手。 我卡住了,请帮忙。 所以我编写了这段代码(c#Visual Studio 2012): private void button2_Click(object sender, EventArgs e) { foreach (DataGridViewRow row in dataGridView1.Rows) { if (row.Cells[1].Value == true) { // what I want to do } } } 所以我得到以下错误: 运算符’==’不能应用于’object’和’bool’类型的操作数。

Visual Studio C#项目在从调试切换到发布时强制重建,反之亦然

似乎Visual Studio 2012 C#项目每次从Debug切换到Release时都会强制重建,反之亦然,即使项目中没有任何更改也是如此。 对于独立项目,这不会发生 – 但如果您将一个项目引用添加到类库,则每次更改为不同的构建配置时,它都会开始显示该行为。 每当配置选择发生变化时,我都会跟踪它生成force.build文件(在obj\Debug或obj\Release )。 为什么是这样? 可以禁用吗? 我认为切换配置本身不应该需要重建。 我找不到任何提及“force.build”文件和/或如何在任何文档中禁用此“function”。 要重新创建问题: 单击File / New Project… 创建一个新的Visual C# – > Console Application 。 保持生成的代码不变。 右键单击解决方案资源管理器中的新解决方案,然后选择Add – > New Project… 选择Visual C# – > Class Library 。 保持生成的代码不变。 右键单击解决方案资源管理器中的ConsoleApplication1 ,然后选择Add Reference… 选中Solution – > Projects ClassLibrary1旁边的框,然后单击OK 。 在Debug配置中构建项目。 它正如预期的那样构建。 切换到Release配置并再次构建。 它正如预期的那样构建。 切换回Debug并再次构建。 它构建 ,它不应该。 […]

切换语句示例

如果此文本框的总数为:PostDiscountTextBox.Text = $ 500.00,我们如何使Switch语句声明如果折扣后成本金额介于0.00和999.99之间,则显示一个消息框,其中显示“此金额符合’A’ -100’常旅客里程“和”确定“按钮? 有人会提供一个switch语句的例子吗? 到目前为止我只有这个,我认为它根本没有。 有人会引导我完成这个吗? 谢谢。 switch (PostDiscountCostTextBox.Text) { case (0.00 < && PostDiscountCostTextBox.Text <= 999.00) 感谢所有帮助过的人,但我想弄清楚如何使用一个switch语句来评估基于一系列数值的Post-discount Cost(没有关于if语句)。 是的,很多案例都会被提出,这些将是我的前两个案例。 有人会非常友好地为我提供一个例子,以便我可以填补其余的案例吗? 我有很多。 谢谢。 如果折扣后成本金额介于0.00和999.99之间 ,则会显示一个消息框,其中显示“此金额符合’A-100’常用里程里程”。 和一个“确定”按钮。 不应使用标题栏文本或图标。 如果折扣后成本金额介于1,000.00和1,499.99之间,则会显示一个消息框,其中显示“此金额符合’B-500’常用里程里程。” 和一个“确定”按钮。 不应使用标题栏文本或图标。

VS 2012中的C#文件没有语法突出显示或智能感知

我刚从MSDN(11.0.50727.1)安装了VS2012 Premium的RTM版本。 我创建了一个C#ASP.NET MVC 4应用程序和一个C#控制台应用程序,但是它们都没有为我提供以下文件类型的语法高亮或Intellisense: CS CSHTML 但是所有其他文件类型似乎都运行正常,包括: HTML JS XML CSS 配置 我在Mac OSX Lion上运行Windows 7,在VMWare Fusion 5中进行虚拟化。 我也在同一个虚拟机中安装了VS 2010,它已经运行良好。 我试过运行devenv.exe / setup但没有成功。 我尝试过工具>导入和导出设置>重置但没有成功。 任何人有任何想法如何使这工作?

我无法在Visual Studio 2012上执行项目

我正在使用C#( http://www.youtube.com/watch?v=TKpO5F8LsCk )进行Robosapien Kinect项目,我在这里压缩代码源表单https://github.com/fatihboy/Robosapien我不知道知道为什么当我用Visual Studio 2012打开KinectRopsapien项目并且我运行并调试MainWindow.xaml.cs窗口时,应该显示Kinect拍摄内容的窗口没有打开,底部有蓝色条,上面写着“Ready” ”。 我的计算机上安装了Kinect for Windows SDK 1.7。 在第一个图像上是一个消息,在调试代码时出现两次,我点击“继续”(我认为是完成调试,我认为没有问题可以继续),第二个图像出现在调试代码,你可以在下面的蓝色栏中看到“准备就绪”,当出现Kinect正在拍摄的窗口时,我将Kinect和USB Uirt连接到我的电脑。 所以我想知道为什么在运行代码后没有窗口打开? 感谢您的关注 img850.imageshack.us/img850/7566/13285409.png – 第一张图片img547.imageshack.us/img547/1449/31396912.png – 第二张图片

如何将共享C#NuGet依赖项添加到C ++ / Cli项目?

上下文:具有2个程序集,Cs和Cpp的Visual Studio解决方案。 Cs是C#/ .net45 dll Cpp是一个C ++ / Cli dll,一个用/ clr编译的C ++ DLL。 我有一些来自nuget.org的纯C#项目的依赖项。 我使用作者提供的原始包。 将它们添加到Cs项目工作正常,但不是Cpp。 如何将C#包添加到C ++项目中? 因为它是C ++ / Cli,所以我可以很容易地使用.net对象,并且我在C#库中使用例如来自C#库的东西。 但不知何故nuget只允许我选择C#项目来添加C#依赖,而不是C ++ / clr。

如何正确关闭C#winform的屏幕键盘进程?

我目前正在设计一个图像查看器,允许用户输入她的电子邮件并以数字方式获取图像。 困扰我的部分是让屏幕键盘关闭。 我用这段代码启动windows进程: string progFiles = @”C:\Program Files\Common Files\Microsoft Shared\ink”; string keyboardPath = Path.Combine(progFiles, “TabTip.exe”); Process keyboardProc = Process.Start(keyboardPath); 之后我打开一个VB InputBox来提示输入电子邮件地址(我使用屏幕键盘,因为应用程序将显示在触摸屏上)。 在此提示后,我想自动关闭该过程。 我试图用以下方法关闭该过程: keyboardProc.Kill(); keyboardProc.Dispose(); keyboardProc.Close(); keyboardProc = null; 它们都不起作用,只是抛出exception: An unhandled exception of type ‘System.InvalidOperationException’ occurred in System.dll Additional information: Cannot process request because the process has exited. 我也尝试通过ID识别进程并以这种方式关闭它,也没用。 我也看了一下: C#/ .NET:关闭主窗口外的另一个进程但是没有让它工作…… 🙁 我对C#很陌生,这是我第一次从代码中调用Windows进程 […]

第一次运行方法时,.NET Release代码非常慢。 如何用NGen解决它?

我已经在发布模式(x64)中部署了一个应用程序,我期望它很快,并且我注意到每当第一次执行新方法或一组方法时,都会出现严重的减速。 当我说严厉时,我的意思是第一次执行100-200毫秒,之后需要1毫秒。 从我发现的,这似乎是由于JIT编译器应该在第一次运行时编译方法。 我预计会有一些延迟,但是在执行过程中100毫秒是一个灾难性的延迟。 我知道NGen,但NGen需要在机器安装时完成。 这适用于所有人的机器具有有限的用户权限,无法安装任何东西。 该应用程序部署为可执行文件和引用DLL。 我想这就是为什么我永远不能让NGen工作的原因。 有没有办法让JIT在启动时编译每个方法? 我虽然创建虚拟变量并添加一个启动例程,除了运行每个方法一次之外什么也不做,所以它可以是启动完成时的内容。 这是否足以强制编译或者方法的每个代码路径都需要单独执行。