Tag: visual studio 2015

如何在Visual Studio中切换.NET Core项目的目标框架

假设您有一个如下所示的.NET Core项目: “frameworks”: { “net40”: {}, “dotnet5.1”: {} } 这是你的C#代码: public class Foo { public static void Blah() { #if DOTNET5_1 DoSomething(); #elif NET40 DoSomethingElse(); #endif } } 现在,在Visual Studio中查看.cs文件时,其中一个#if部分将显示为灰色 – DoSomething或DoSomethingElse 。 以下是我在笔记本电脑上的显示方式: 是否有可能让VS在目标平台之间“切换上下文”,以便您可以查看为特定平台编译的内容? 例如,在实际构建解决方案之前,我可能想要检查每个框架的任何红色波浪线。 任何帮助将不胜感激,谢谢!

在CommandBar的SecondaryCommand上设置图标

我有一个命令栏宽度辅助命令: 为什么不显示喜欢和不喜欢的图标?

Roslyn Analyzer规则不会使构建失败

继MS的本教程之后,我为Roslyn创建了一个分析器。 根据该页面,您可以将规则标记为DiagnosticSeverity.Error ,这将导致构建中断: 在声明“规则”字段的行中,您还可以将要生成的诊断的严重性更新为错误而不是警告。 如果正则表达式字符串不解析,Match方法肯定会在运行时抛出exception,您应该像编译C#编译器错误一样阻止构建。 将规则的严重性更改为DiagnosticSeverity.Error: 内部静态DiagnosticDescriptor Rule = new DiagnosticDescriptor(DiagnosticId,Title,MessageFormat,Category,DiagnosticSeverity.Error,isEnabledByDefault:true,description:Description); 在我的代码中,我已经或多或少地创建了规则,如下所示: private static readonly DiagnosticDescriptor Rule = new DiagnosticDescriptor(DiagnosticId, Title, MessageFormat, Category, DiagnosticSeverity.Error, true, helpLinkUri: HelpUrl); 这条规则很好。 它会抛出红线,它会在错误列表中显示消息。 但是,构建成功,我能够成功运行该应用程序。 注意:我已创建此规则以捕获此示例的Thread.Sleep 。 是否需要额外的设置来确保规则中断构建?

安装VS 2017后,为什么命令行csc不能编译C#7?

我刚刚下载了几天前发布的 Visual Studio 2017 RC,它支持C#7.我可以使用IDE的C#7function: 但是,此行为似乎不适用于命令行。 我正在开发一个需要csc可执行文件来处理C#7及更高版本的项目。 但是,当我尝试更改到与项目相同的目录并编译文件时,我得到了 > csc Program.cs /target:exe Microsoft (R) Visual C# Compiler version 1.3.1.60616 Copyright (C) Microsoft Corporation. All rights reserved. Program.cs(12,23): error CS1026: ) expected Program.cs(12,25): error CS1001: Identifier expected Program.cs(12,25): error CS1002: ; expected Program.cs(12,26): error CS1002: ; expected Program.cs(12,26): error CS1513: } expected Program.cs(13,32): error CS1003: Syntax […]

让VS2015validationC#的早期语法以维持与VS2013的竞争的方法

我遇到的一个具体问题是VS2015允许你使用更新的C#语法,例如public string MyProperty => _myProperty; 当针对.NET 4.0框架项目,然后其他人在VS2013中打开项目时会遇到编译器错误。 有没有办法配置VS2015,以便它对C#6特有的function发出警告或错误? 或者说另一种方式,我可以告诉VS2015哪个版本的C#我想编译?

找不到类型或命名空间名称“System”

在Visual Studio 2015 Professional中打开我的项目时,我的所有视图(* .cshtml)中都存在以下错误(以及更多错误)。 错误CS0246找不到类型或命名空间名称’System’(您是否缺少using指令或程序集引用?)严重性代码描述项目文件行 错误CS0518未定义或导入预定义类型“System.Object”严重性代码描述项目文件行 错误CS0518未定义或导入预定义类型“System.String” 我得到了这些参考: False N:\XXX\Sitecore.Kernel.dll N:\XXX\Sitecore.Mvc.dll False N:\XXX\System.Web.Helpers.dll False N:\XXX\System.Web.Mvc.dll N:\XXX\System.Web.Providers.dll False N:\XXX\System.Web.Razor.dll False N:\XXX\System.Web.WebPages.dll False N:\XXX\System.Web.WebPages.Deployment.dll False N:\XXX\System.Web.WebPages.Razor.dll 我找到了一些解决方案,说没有引用mscorlib ..但是当我尝试添加它时,它说它已经存在(即使我没有在csproj文件中看到它)。 System.dll参考: 解: 管理问题..我将构建路径设置为“c:… \ bin”而不是“\ bin”。 我相信这是因为我在项目的根目录中没有任何web.config,因此VS没有将我的项目识别为Web项目。

带伪造的unit testing中的Visual Studio 2015 InvalidProgramException

我正在使用Visual Studio 2015 Enterprise RTM为使用Unity Container的项目编写unit testing。 我发现为Unity添加一个fakes程序集的简单行为,甚至实际上不使用伪造,足以产生这个exception: System.InvalidProgramException:公共语言运行时检测到无效程序。 请考虑以下步骤来重现: 使用Visual Studio 2015 Enterprise RTM创建面向.NET 4.6的unit testing项目 添加NuGet包“Unity”版本3.5.1404.0 添加NuGet包“CommonServiceLocator”1.2.0版 像这样写一个unit testing: [TestClass] public class UnitTest1 : IDisposable { [TestMethod] public void TestMethod1() { new ResolvedArrayParameter(new IDisposable[] {this}); } void IDisposable.Dispose() { } } validation测试通过 右键单击Microsoft.Practices.Unity参考并选择“Add Fakes Assembly” 重新运行测试 观察以下显着的测试失败: 测试名称:TestMethod1 测试FullName:UnitTestProject11.UnitTest1.TestMethod1 测试源:c:\ temp \ UnitTestProject11 […]

Visual Studio 2015不会自动为多行注释添加星号

在输入多行注释时,当我按下回车键时,Visual Studio用于为注释的每个新行添加一个自动星号(显然2015年不再这样做了)。 我真的很喜欢这个。 截至目前,如果我输入”/*”并输入,Visual Studio根本不会尝试自动完成它。 事实上,它甚至让我用”*/”结束评论,而不是为我做。 所以我的问题是:是否还有其他人遇到这种情况? 如何恢复原始function,因此每个新行自动以星号为前缀,并以”*/”为我关闭? 我已经检查过,是的,我的环境设置设置为C#,是的,确实在我的设置中选中了“为///生成XML文档注释”选项。

Visual Studio 2015缺少XML注释/文档

它是我还是Visual Studio 2015中 System.Linq缺少的XML注释? 因为我仍然可以在MSDN上找到它。 但是在输入时,例如,这段代码: var list = new List(); list.Select( IntelliSense不提供System.Linq命名空间中任何类/方法/成员/扩展的注释/文档: 点击( Alt +) F12 进入 Enumerable上随机扩展方法的定义时,可以预览: 我想我也没有注意到Visual Studio 2013中的文档。 但我确实记得他们曾经在那里,也许是在Visual Studio 2012或之前? 编辑 :我忘了提到我在Visual Studio 2015中安装了Resharper 10 Ultimate。我还在Visual Studio 2013中安装了Resharper 8和9。

如何通过套接字从UWP应用程序连接到Unity游戏服务器套接字?

我想将从微软乐队收到的一些心率值从UWP应用程序发送到Unity。 我目前在Unity中有一个工作的Tcp服务器,但我似乎无法在UWP中使用System.Net.Sockets。 任何人都知道如何在UWP应用程序上创建一个tcp客户端并将数据发送到Unity? 我的服务器代码如下: using UnityEngine; using System.Collections; using System.Net.Sockets; using System.IO; using System.Net; using System.Threading; public class Server { public static TcpListener listener; public static Socket soc; public static NetworkStream s; public void StartService () { listener = new TcpListener (15579); listener.Start (); for(int i = 0;i < 1;i++){ Thread t = new Thread(new […]