Tag: visual studio

如何使用intellisense支持编写类似string.Format的方法

考虑使用string.Format的frist参数之类的format参数进行写入的方法。 如您所知,Intellisense知道第一个参数的约束并检查其与参数的一致性。 我怎么能写这样的方法。 举个简单的例子,考虑一下string.Format的包装: public string MyStringFomratter(string formatStr, params object[] arguments) { // Do some checking and apply some logic return string.Format(formatStr, arguments); } 我怎么能对编译器或IDE说formatStr就像string.Format的第一个参数? 所以如果我有这样的代码: var x = MyStringFormatter(“FristName: {0}, LastName: {1}”, firstName); // This code should generate a warning in the IDE

无法找到命名空间 – 使用TFS构建

我在使用TFS时遇到了麻烦。 它不会构建我的项目,因为 找不到类型或命名空间名称’Newtonsoft’(您是否缺少using指令或程序集引用?) 我尝试通过nuget添加它,但我仍然收到此错误。 当我通过nuget添加这个dll时,我有其他项目工作正常。 此外,该项目的本地构建是成功的。 我在解决方案中创建了一个新文件夹,然后将dll放入其中并引用它。

roslyn编译器没有使用msbuild复制到AspnetCompileMerge文件夹

我有一个.NET MVC项目,我正在尝试使用Jenkins进行部署。 我一直让Jenkins运行msbuild,然后使用RoboCopy复制生成的文件。 我想切换到只使用发布配置文件。 发布配置文件在我的本地计算机上使用Visual Studio正常工作,但在Jenkins主机上它使用msbuild失败。 它给出的错误是 ASPNETCOMPILER:错误ASPRUNTIME:找不到路径’C:\ Program Files(x86)\ Jenkins \ jobs \ myProject \ workspace \ myProject \ _ obj \ Debug \ AspnetCompileMerge \ Source \ bin \ roslyn \ csc.exe’的一部分。 [C:\ Program Files(x86)\ Jenkins \ jobs \ myProject \ workspace \ myProject \ calendar.csproj] 我正在使用Microsoft.Net.Compilers nuget包来引入C#编译器,因为项目中的一些协作者仍然在Visual Studio 2013上,但我们在项目中使用C#6语言function。 事实上,在添加发布标志之前,使用MSBuild在jenkins上构建的项目很好。 它只是在添加/p:DeployOnBuild=true;PublishProfile=MyProfile设置/p:DeployOnBuild=true;PublishProfile=MyProfile开始失败…但是发布步骤可以正常使用Visual Studio,而roslyn编译器甚至被复制到obj […]

如何让Visual Studio自动为function块生成大括号?

我发誓我已经看到人们键入函数头然后点击一些键组合来自动创建函数括号并将光标插入它们之间,如下所示: void foo()_ 至 void foo() { _ } 这是内置function吗?

配置在Visual Studio中触发intellisense完成的键

我希望Visual Studio只在我点击tab时自动填充intellisense菜单中的当前条目。 自动填充被触发,例如,当我按下一段时间时,强迫我在每次写一些尚未自动完成的东西时都逃脱,以避免我正在键入的内容被随机条目替换。 有没有配置这个选项? 我正在使用Visual Studio 2015,并使用C#编程。 示例:这里我正在键入Log ,这是一个我还没有添加适当的using语句的类。 没有一个建议是好的。 如果我打了 现在,自动完成function将编写EventLogProcessor ,这不是我想要的。 请注意,此问题与VIM无关,这与顶部链接的问题不重复。

.NET如何重命名我的嵌入式资源?

当我将文件构建为“嵌入式资源”时,Visual Studio会在程序集中根据其在项目中的路径为其命名。 例如。 我在cases/2013.1/colours.xml文件被赋予了一个资源名称,其中包含了像cases._2013._1.colours.xml这样的零星下划线。 我的问题是 – 这个名字是如何确定的? 规则是否记录在案? Visual Studio使用的方法在哪里? 编辑:我问,因为我正在处理大量这些事情,能够从文件路径中推断出资源名称会很有帮助。

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并再次构建。 它构建 ,它不应该。 […]

如何将C#代码编译为库而不是可执行文件?

我在Visual Studio 2010中有一个C#控制台应用程序。它有一个Main()方法以及一堆实用程序类。 我希望这些实用程序类可用于其他解决方案。 从在线阅读看来,我需要将其编译为类库(DLL)。 所以这就是我做的: 在Visual Studio中“Project> [ProjectName]属性>应用程序”并将“输出类型”从“控制台应用程序”更改为“类库” 重建; ProjectName.dll是在bin / Debug中创建的。 创建了一个新的控制台应用程序 解决方案资源管理器>添加引用>浏览到ProjectName.DLL,选择它。 但是,IntelliSense和对象浏览器都无法在该DLL中找到类。 我尝试将几个不同的控制台应用程序重新编译为类库并获得相同的结果。 我还注意到,如果我最初将解决方案创建为类库,它会起作用,但如果我稍后将其转换为一个,则不行。 有小费吗?

为什么我的断点在Visual Studio中重复?

我最近开始在Visual Studio 2010中遇到断点问题。当我设置断点然后开始调试时,另一个断点会出现在附近的其他行上。 下面的屏幕截图显示了我设置断点后的编辑器以及断点窗口: 一旦我开始调试,断点就会重复,如以下屏幕截图所示: 为什么会这样,我怎么能阻止它呢?

如果声明是接口,则编译器不会识别generics中的属性

看看以下演示Visual Studio 2017编译器的问题 public interface IFoo { string Key { get; set; } } public class Foo : IFoo { public string Key { get; set; } } class Program { static void Main(string[] args) { PrintFoo(new Foo() { Key = “Hello World” }); Console.ReadLine(); } private static void PrintFoo(T foo) where T : IFoo […]