使用Visual Studio的托管包框架,如何从C#继承,以便我可以拥有C#属性页和C#项目项?我已经尝试制作一个风味项目,但它在制作我们自己的自定义节点和自定义文件属性方面受到限制.但是,在使用MPF时,我似乎无法获得随着调味项目提供的那些C#属性.
谢谢
当我向项目添加Web引用时,它会提供一个默认命名空间:com.wpdevs.myservice.这是我期望它在应用程序中使用的命名空间.
当我将using语句添加到项目时,我必须添加:
using MyProject.com.wpdevs.myservice;
Run Code Online (Sandbox Code Playgroud)
我想找到一种方法来消除必须在using语句中引用项目名称.我现在正在组合的项目注定要转换为VS项目模板,并且在那里有相当奇怪的参考,甚至有一个每个项目的参考,这不是我想在项目中拥有的东西.
我正在构建一个Visual Studio包并与之关联,我有一个app.config文件(其中包含有关连接到WCF服务的一些信息).
据我所知,这个包实际上连接到devnev.exe.config配置文件(如果我使用AppDomain.CurrentDomain.SetupInformation.ConfigurationFile),它将检索devnev.exe.config的路径
首先,这是正确的吗?软件包不应该自动获取app.config文件吗?如果是这种情况,那么如何让项目使用app.config文件?
我正在运行VS2010 Ultimate,用C#编程.
嘿伙计们,我需要在C#中为Visual Studio 2010加载项创建一个自定义菜单项,但我没有找到满足我需求的解决方案.
我知道有一个类似的帖子(Visual Studio加载项 - 向解决方案资源管理器添加上下文菜单项),但它没有帮助,因为博客通过集成包跟踪过程,视频通过VB.我曾尝试将VB语法转换为C#语法,但在视频的大约一半时间,加载方法从2005年到2010年发生了重大变化,因为某些方法已被删除或更改.
是否有关于在C#中最新的Visual Studio中的解决方案资源管理器上制作自定义菜单项的任何好的教程,是否有一个很好的网站可以作为查看VS加载项API的参考?我使用过微软的主要网站,但它很混乱,很难理解,很难理解并找到我正在寻找的方法,属性或命令.
任何帮助都会有所帮助,在此先感谢.
我想基于IronStudio添加自己的项目类型.所以,
Templates\Projects\MyProject文件夹,并向其中添加了一个文件,并将其属性"包含在VSIX中"设置为true.然后修改了要从IronStudio中派生的主Package类PythonProjectPackage,并设置ProvideProjectFactory属性:
[ProvideProjectFactory(
typeof(PythonProjectFactory),
"Django Project",
"Django Project Files (*.myproj);*.myproj",
"myproj", "myproj",
@"Templates\Projects\MyProject",
LanguageVsTemplate="MyProject")]
public sealed class MyPackage : PythonProjectPackage
Run Code Online (Sandbox Code Playgroud)
跑了.但MyProject没有出现在项目模板中.为什么不?
生成的.pkgdef文件如下所示:
[$RootKey$\InstalledProducts\VSPackage3Package]
@="#110"
"Package"="{5cd7435c-7461-459f-80bc-c0c79e9d462f}"
"PID"="1.0"
"ProductDetails"="#112"
"LogoID"="#400"
[$RootKey$\Packages\{5cd7435c-7461-459f-80bc-c0c79e9d462f}]
@="Microsoft.VSPackage3.VSPackage3Package, VSPackage3, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a4f1577d825253f8"
"InprocServer32"="$WinDir$\SYSTEM32\MSCOREE.DLL"
"Class"="Microsoft.VSPackage3.VSPackage3Package"
"CodeBase"="$PackageFolder$\VSPackage3.dll"
[$RootKey$\Editors\{888888c4-36f9-4453-90aa-29fa4d2e5706}]
"Package"="{5cd7435c-7461-459f-80bc-c0c79e9d462f}"
[$RootKey$\Editors\{888888c4-36f9-4453-90aa-29fa4d2e5706}\Extensions]
"py"=dword:00000020
[$RootKey$\Editors\{888888c4-36f9-4453-90aa-29fa4d2e5706}\LogicalViews]
"{7651a701-06e5-11d1-8ebd-00a0c90f26ea}"=""
[$RootKey$\Editors\{888888c4-36f9-4453-90aa-29fa4d2e5706}\LogicalViews]
"{7651a702-06e5-11d1-8ebd-00a0c90f26ea}"=""
[$RootKey$\Editors\{888888c4-36f9-4453-90aa-29fa4d2e5706}\LogicalViews]
"{7651a703-06e5-11d1-8ebd-00a0c90f26ea}"=""
[$RootKey$\CLSID\{888888fd-3c4a-40da-aefb-5ac10f5e8b30}]
@="Microsoft.IronPythonTools.Project.PythonGeneralPropertyPage"
"InprocServer32"="$WinDir$\SYSTEM32\MSCOREE.DLL"
"Class"="Microsoft.IronPythonTools.Project.PythonGeneralPropertyPage"
"CodeBase"="$PackageFolder$\VSPackage3.dll"
"ThreadingModel"="Both"
[$RootKey$\Projects\{888888a0-9f3d-457c-b088-3a5042f75d52}]
@="PythonProjectFactory"
"DisplayName"="My Project"
"DisplayProjectFileExtensions"="My Project Files (*.myproj);*.myproj"
"Package"="{5cd7435c-7461-459f-80bc-c0c79e9d462f}"
"DefaultProjectExtension"="myproj"
"PossibleProjectExtensions"="myproj"
"ProjectTemplatesDir"="$PackageFolder$\Templates\Projects\MyProject"
"Language(VsTemplate)"="MyProject" …Run Code Online (Sandbox Code Playgroud) 我正在尝试开发一个类似于VS 2010中的"注释"工具栏按钮的扩展,但我想将所有文本标记为已注释,并在其上方添加注释.
这是一个例子.我知道这很简单,但它更容易.我的想法是有一些额外的工具栏按钮来标记不再使用的代码,标记有错误的代码......以及类似的东西......这可以在任务窗口中选取,因为它以TODO开头:
// TODO MARTIN CODE NO LONGER USED
/*if (myItem)
{
txtTest.Enabled = false;
txtTest1.Value = 0;
btnOk.Enabled = false;
}*/
Run Code Online (Sandbox Code Playgroud)
我认为我需要使用:
DTE.ActiveDocument
Run Code Online (Sandbox Code Playgroud)
和:
(((TextDocument)myDoc).Selection.Text).
Run Code Online (Sandbox Code Playgroud)
然后再次写出代码,我需要做什么?
我正在创建一个公开工具窗口的Visual Studio包,我正在尝试确保在首次加载包时它显示为停靠在Visual Studio主窗口的左边缘.
[ProvideToolWindow(typeof(MyToolWindow), Orientation = ToolWindowOrientation.Left,
Style=VsDockStyle.Linked, Window=EnvDTE.Constants.vsWindowKindLinkedWindowFrame)])]
[ProvideToolWindowVisibility(typeof(MyToolWindow), VSConstants.UICONTEXT.NoSolution_string)]
public class MyPackage : Package
{
...
Run Code Online (Sandbox Code Playgroud)
我已经尝试了上述的许多变体,但我设法实现的最好的是将窗口停靠在底部 - 即使这样,每次重新加载包时它都会继续重新对接而不是持久化用户窗口位置.
如何指定我的窗格最初显示为停靠在主窗口的左侧?
给定一个表示特定类/字段/属性的字符串(例如MyNameSpace.MyClass或者System.String.Length),我如何以编程方式使Visual Studio转到该类/字段/属性(即,使Visual Studio做同样的事情,如果我去在代码编辑器中输入引用然后点击F12)?
在我的编辑器扩展中,我使用自定义分类格式来表示关键字,标识符等.当然,我可以使用默认格式,因为颜色(语法高亮使用)将根据所选主题进行更改.
由于我的自定义编辑器还需要其他分类类型(例如标点符号类型),因此当用户配置另一个主题(例如,通过切换Dark到Blue主题)时,这些类型的颜色不会更改.我想知道如何提供特定于主题的格式.
从EnvDTE.ProjectItem获取Roslyn的SyntaxTree的最佳方法是什么?我找到了另一种方法(Roslyn的Document into ProjectItem).
我从打开的文档中调用了VSIX命令,我想在那里试验Roslyn的语法树.
这段代码有效,但对我来说看起来很尴尬:
var pi = GetProjectItem();
var piName = pi.get_FileNames(1);
var componentModel = (IComponentModel)Microsoft.VisualStudio.Shell.Package.GetGlobalService(typeof(SComponentModel));
var workspace = componentModel.GetService<Microsoft.VisualStudio.LanguageServices.VisualStudioWorkspace>();
var ids = workspace.GetOpenDocumentIds();
var id1 = ids.First(id => workspace.GetFilePath(id) == piName);
Microsoft.CodeAnalysis.Solution sln = workspace.CurrentSolution;
var doc = sln.GetDocument(id1);
//var w = await doc.GetSyntaxTreeAsync();
Microsoft.CodeAnalysis.SyntaxTree syntaxTree;
if (doc.TryGetSyntaxTree(out syntaxTree))
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法从活动文档中获取Roslyn的文档?
vsx ×10
c# ×3
.net ×1
app-config ×1
contextmenu ×1
docking ×1
envdte ×1
ironpython ×1
mpf ×1
namespaces ×1
roslyn ×1
subtype ×1
vsix ×1
vspackage ×1