如何在C#中使用EnvDTE以编程方式打开文件.
将上下文菜单项添加到VS 2010中的解决方案资源管理器相当容易.但是如何仅在解决方案项目上显示菜单项?不是项目项目或其他东西?
最好的问候,DR
projects-and-solutions visual-studio-2010 visual-studio-extensions
女士们,先生们,我正在尝试创建一个DLL,我可以在几个不同的项目之间共享,其中包括我为简化代码而编写的各种扩展方法.理解这样的DLL在C#和VB.net项目之间共享是可行的.然而,我迄今为止无法创建DLL,甚至包含子项目并以这种方式引用它并能够访问我的扩展.
我能够在对象浏览器中看到引用,但import语句不会将我的子项目引用作为选项.VB.net不允许我将扩展放在类中,我似乎无法在网上找到任何可以解释这一点的线索.提前致谢.
例...
Imports System.Runtime.CompilerServices
Imports System.Text.RegularExpressions
Module Extensions
<System.Runtime.CompilerServices.Extension()>
Public Function ToEnum(Of T)(ByVal value As String) As T
Try
Return (CType([Enum].Parse(GetType(T), value.Replace(" ", ""), True), T))
Catch ex As Exception
Return (CType([Enum].Parse(GetType(T), 0, True), T))
End Try
End Function
End Module
Run Code Online (Sandbox Code Playgroud)
Imports System.Runtime.CompilerServices
Imports System.Text.RegularExpressions
Module Extensions
<System.Runtime.CompilerServices.Extension()>
Public Function ToEnum(Of T)(ByVal value As String) As T
Try
Return (CType([Enum].Parse(GetType(T), value.Replace(" ", ""), True), T))
Catch ex As Exception
Return (CType([Enum].Parse(GetType(T), 0, True), T))
End Try
End Function
End …
Run Code Online (Sandbox Code Playgroud) 这是一个非常有用的功能,有许多IDE可以提供它,但我找不到任何可以提供本地历史记录的扩展.
通过本地历史记录我的意思是跟踪我对源代码所做的任何更改和编辑,以便将来能够恢复它.
我要做基于演示的演示文稿.所以我想要的是预先记录(不是视频记录)我的演示和重播,而我正在做演示.预存和播放保存代码段并生成某种列表然后当我点击列表项时生成相关代码并插入代码编辑器.是否有任何宏基或任何其他方法来做到这一点?
如果不清楚,请问问题.
更新1
@jerek回答了最初的问题.无论如何要继续替换/编辑现有代码?
visual-studio visual-studio-extensions visual-studio-macros visual-studio-2012
有没有办法在visual studio扩展中订阅Test Explorer事件?我没有在DTE2界面中找到类似的东西.我的目标是在测试运行完成时从扩展触发一些功能(对于从Test Explorer运行的测试)
谢谢!
我创建了一个自定义 Visual Studio 扩展并通过内部扩展库进行了部署。当我对我的扩展进行更新时,它在 Visual Studio扩展和更新中正确显示为需要更新。
当我单击更新然后在我的扩展程序上安装时,它给了我这个错误:
无法安装扩展,因为发生以下错误:
我的自定义扩展已经安装。
如何在 Visual Studio 中更新我的自定义扩展而不需要先卸载它?
我正在c#中开始一个新项目,我正在寻找一种可以帮助我进行突变测试的工具.我以前在使用pitest的 java中进行了突变测试并非常喜欢它.现在我正在为C#寻找这样一个工具,我能找到的唯一工具要么在过去几年没有更新,要么仍然在alpha/beta(cream,ninjaTurtles,Nester).
是否有任何可靠的工具可以与2010年之后出现的工具一起使用?
编辑:有人可能会说这个问题与存在哪些突变测试框架是重复的?[关闭].只有那个问题目前已经有8年的历史了,所讨论的大部分工具都无法使用,因为大多数工具在过去的6到8年里都没有更新过.
我使用以下代码将新的 json 文本分配给文档:
public virtual async Task SetDocumentText(FileInfo fileInfo, string contents)
{
if (fileInfo == null)
throw new ArgumentNullException(nameof(fileInfo));
var projectItem = FindDTEProjectItem(fileInfo.FullName);
if (null == projectItem?.Document)
await Task.Run(() => fileInfo.WriteAllText(contents));
else
{
var textSelection = (TextSelection)projectItem.Document.Selection;
textSelection.SelectAll();
textSelection.Text = contents;
projectItem.Document.Save();
}
}
Run Code Online (Sandbox Code Playgroud)
但是我目前的解决方案存在三个问题:
有没有更好的方法将新文本分配给 EnvDTE.Document?
这是损坏的文本的样子:
但这是我分配的:
...
...
},
"client": {
"title": "Mr"
}
}
Run Code Online (Sandbox Code Playgroud)
我分配的 json 文本是有效且格式良好的,即使不是,我也不希望 json 文本出现如此严重的损坏。
如果我将文本直接写入文件,那么 Visual Studio 将询问用户是否要重新加载,我也试图避免该弹出窗口。
任何帮助,将不胜感激。我无法成功使用 roslyn 和 TextDocument,因为我无法加载 AdditionalDocument。roslyn 项目文档集合中仅包含代码文件。
c# json envdte visual-studio-extensions roslyn-code-analysis
嗨,我想将我的扩展升级到 Visual Studio 2017,但出现Microsoft.VisualStudio.Shell.RegistrationAttribute错误,但我已经添加了此参考?我在编译时遇到了此错误。是否有任何参考要添加或其他?对此有何评论?
D:\Visual Studio 2017\VSSDK\VisualStudioIntegration\Common\Assemblies\v4.0\Microsoft.VisualStudio.Shell.Immutable.10.0.dll ,version :10.0.0.0
Run Code Online (Sandbox Code Playgroud)
我的错误是
Severity Code Description Project File Line Suppression State
Error CreatePkgDef : error : ArgumentException: No Visual Studio registration attribute found in this assembly.
Severity Code Description Project File Line Suppression State
Error The assembly should contain an instance of the attribute 'Microsoft.VisualStudio.Shell.RegistrationAttribute' defined in assembly 'Microsoft.VisualStudio.Shell.Immutable.10.0' version '10.0.0.0'
Severity Code Description Project File Line Suppression State
Error at Microsoft.VisualStudio.Tools.CreatePkgDef.ProcessAssembly(String fileName, Hive hive, PkgDefContext context, Boolean register, RegistrationMode mode) …Run Code Online (Sandbox Code Playgroud)