标签: visual-studio-macros

令人敬畏的Visual Studio宏

对于小型社区讨论,您使用的Visual Studio宏是什么?

我刚刚开始了解它们,并希望听到你们中的一些人不能没有.

visual-studio visual-studio-macros

67
推荐指数
8
解决办法
3万
查看次数

Visual Studio 2012中宏的替代方法

我在XAML开发中广泛使用宏来查看ViewModel属性.我在WCF中更多地使用它们来生成Message和DataContract属性.

令我失望的是,我构建的宏在Visual Studio 2012中无法使用.

我正在谈论的一个例子,对于VM,我会输入这样的东西.

int id;
string name;
Run Code Online (Sandbox Code Playgroud)

选择两行,运行宏并最终结束

private int _id;
private string _name;

public int Id
{
   get {return _id;}
   set
   {
      if(_id != value)
      {
        _id = value;
        RaisePropertyChanged("Id");
      }
}

public string Name
{
   if(_name != value)
   {
      _name = value;
      RaisePropertyChanged("Name");
   }
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找其他解决丢失宏的解决方案的想法.

visual-studio-macros visual-studio-2012

51
推荐指数
5
解决办法
3万
查看次数

切换"抛出异常时中断".使用宏或键盘快捷方式

编辑:Visual Studio 2015的新异常窗口比旧对话框快得多,我不再关心使用它的键盘快捷方式.

是否有一个宏或键盘快捷方式,可以在不使用GUI的情况下切换"在抛出异常时中断"?

使用ctrl + alt + e打开对话框并检查"公共语言运行时异常""抛出"框然后单击"确定"很简单,但这是我做了很多事情.我宁愿有一个键盘快捷键.

这个问题是一个副本 任何有一个Visual Studio快捷方式/宏来切换处理/未处理的异常中断?

然而,海报接受的答案并没有真正的工作,我也很喜欢那个答案工作.

重复问题中的答案是不可接受的,因为它只切换一个特定的异常,而不是整个CLR组.

"好吧,然后写一个循环." 你说.但不是那么快!有人已经尝试过,而且它无用缓慢.(是的,我已经证实它在我的系统上也很慢.)

因此,挑战在于使用宏来在不到1秒或2秒的时间内切换整个CLR例外类别.这个问题是一个副本 任何有一个Visual Studio快捷方式/宏来切换处理/未处理的异常中断?

ide exception visual-studio visual-studio-macros

42
推荐指数
2
解决办法
5983
查看次数

折叠所有Visual Studio工具箱区域快捷方式

是否有键盘快捷键或宏来折叠Visual Studio工具箱中的所有区域?(没有其中任何一个,我会接受一个允许这个的插件!)

keyboard-shortcuts visual-studio visual-studio-macros

29
推荐指数
1
解决办法
4603
查看次数

如何在单词中使用/启用(RegExp对象)使用VBA(MACRO)的正则表达式

我做了很多谷歌搜索,以获得如何使用或开始在VBA中使用正则表达式的正确答案.

最后我明白了,所以我想和你们分享我的知识.如果我错了,请纠正我.

regex vba visual-studio-macros

14
推荐指数
1
解决办法
3万
查看次数

预处理器宏作为其他宏的参数

下面的C++代码编译并作为GCC上的程序员工作(4.0.4)

#define FOO(x,y,z) ((x)*(y)*(z))
#define BAR(x) FOO(x,1)
#define BAZ 3,7

int main()
{
    return BAR(BAZ); /* interpreted as return ((3)*(7)*(1)); */
}
Run Code Online (Sandbox Code Playgroud)

但是,宏在Microsoft Visual C++ Express 2010上导致错误:

main.cpp(7):警告C4003:宏'
FOO'main.cpp(7)的实际参数不够:错误C2059:语法错误:')'

问题似乎是Microsoft编译器在内部处理BAR宏时,不会将BAZ宏扩展为可用作宏FOO的两个独立参数的参数.

根据标准,哪个编译器正确处理了这种情况?

c++ macros legacy-code c-preprocessor visual-studio-macros

12
推荐指数
1
解决办法
1747
查看次数

从源代码访问Visual Studio宏?

Visual Studio中有宏象$(TargetDirectory),$(OutputPath)等等.
在我的源代码,我想从一个文件夹指定一个文件的加载相对路径下面几级TargetDirectory.
目前我正在这样做:mLayer = mEngine->AddLayer("D:\\Projects\\abc.osg");我希望它是这样的mLayer = mEngine->AddLayer(($TargetDirectory)+"..\\..\\abc.osg");

这只是一个临时要求,因此我可以将我的代码提供给一个人进行小型演示,并且他的TargetDirectory与我的目录不同.有没有办法在源代码中使用Visual Studio宏?(至少我知道可以访问系统环境变量)

visual-studio-2010 visual-c++ visual-studio-macros

12
推荐指数
2
解决办法
6595
查看次数

如何在不创建工作区的情况下从tfs获取特定版本的文件夹?

我想在特定时间(变更集)获取项目的源代码.所以我需要下载整个文件夹.我想在不同的时间做这件事并且处理不同的工作空间不是很方便.

我知道TFS获取特定版本到单独的文件夹(带工作空间)和Need命令从TFS获取文件而没有工作空间(一个文件).

没有创建新工作区,是否有整个文件夹的解决方案?

编辑 我发现接受的答案太雄心勃勃了.我需要更简单的东西.

假设:

  • 我可以在我的计算机上从Visual Studio访问TFS
  • 我想ChangeSetNumberDesiredFolderTFS项目中的文件夹中获取Changeset tProj

我从Visual Studio命令提示符中的目标文件夹运行以下批处理

set workspace_name=TemporaryWorkspace%username%
set changeset= ChangeSetNumber                
tf workspace -new %workspace_name% -noprompt
tf workfold -map $/tProj . -workspace:%workspace_name%
tf get $/tProj/DesiredFolder -version:C%changeset% -recursive -noprompt
tf workfold -unmap . -workspace:%workspace_name%
tf workspace -delete %workspace_name% -noprompt
Run Code Online (Sandbox Code Playgroud)

启动下载的解决方案时,必须确认删除源控制关联.

tfs command-line tfs-sdk tfs2010 visual-studio-macros

11
推荐指数
3
解决办法
2万
查看次数

Visual Studio 2012:如何执行条件构建后事件

如何执行有条件的构建后事件?具体来说,我只想为调试版本执行post-build事件命令行,而不是为发布版本执行.

我没有在项目的属性"构建事件"页面中看到任何方式.

macros post-build-event visual-studio-macros visual-studio-2012

10
推荐指数
1
解决办法
2万
查看次数

调试Visual Studio宏中引用的自定义dll

我之前问过: 添加对visual studio宏的dll引用

用我的语言(C#)创建宏的想法使得创建宏更容易.问题是我无法调试dll

为了解决我试过的问题:

  1. myClassLibrary.pdb接下来myClassLibrary.dll希望我可以通过步入它们来调试dll中的方法.

  2. 创建了WCF服务.因为我不知道如何从vba引用服务,所以我从类库中引用它.问题是我需要使用变量,例如DTE.ActiveDocument,这些变量不可序列化,这意味着我无法将它们传递给wcf服务.

在C#中工作的想法非常好但是无法调试并且看到发生了什么使得它有点困难.我可能不得不转到我的旧选项,我在C#上创建了我的代码然后用反射器反编译成vba.


编辑

我想我已经接近了解决方案.我想为什么不在控制台应用程序中创建宏?我能够获取活动文档文本但无法更改它.

        EnvDTE80.DTE2 MyDte;
        MyDte = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject( "VisualStudio.DTE.10.0" );
        Console.WriteLine( "The Edition is " + MyDte.Edition );

        Console.ReadLine( );

        // write to the console the text that is selected. "sometimes it does not work don't know why"
        Console.WriteLine(
            MyDte.ActiveDocument.Selection.Text
        );
Run Code Online (Sandbox Code Playgroud)

注意我添加了以下引用加上vba宏具有的onces:

在此输入图像描述

c# debugging dll step-into visual-studio-macros

9
推荐指数
2
解决办法
1342
查看次数