是否可以为解决方案中的所有或特定文件运行自动格式化代码,例如在Visual Studio中的(Ctrl + K,Ctrl + D)格式,但是从它的命令行?或者从解决方案文件的命令行中使用Resharper的清理?
这就是我目前正在做的事情:
protected void setupProject()
{
bool lbDone = false;
int liCount = 0;
while (!lbDone && liCount < pMaxRetries)
{
try
{
pProject.ProjectItems.Item("Class1.cs").Delete();
lbDone = true;
}
catch (System.Runtime.InteropServices.COMException loE)
{
liCount++;
if ((uint)loE.ErrorCode == 0x80010001)
{
// RPC_E_CALL_REJECTED - sleep half sec then try again
System.Threading.Thread.Sleep(pDelayBetweenRetry);
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我尝试阻止大多数调用EnvDTE的东西,它运行得很好.我遇到的问题是当我遍历一个集合并对每个项目执行一次操作时.
foreach(ProjectItem pi in pProject.ProjectItems)
{
// do something to pi
}
Run Code Online (Sandbox Code Playgroud)
有时我会foreach(ProjectItem pi in pProject.ProjectItems)在行中获得异常.因为如果我得到RPC_E_CALL_REJECTED异常,我不想启动foreach循环,我不知道我能做什么.
编辑回答评论:是的我正在从另一个程序自动化VS,是的,我通常在同时使用VS做其他事情.我们有一个应用程序读取xml文件,然后根据xml文件生成大约50个VS解决方案.这通常需要几个小时,所以当我发生这种情况时,我会尝试做其他工作.
我有一个用于SQL Server DB的Visual Studio 2015数据库项目,我可以在其中进行模式比较/数据比较,并手动将项目签入GIT.我想自动完成这个完整的模式/数据比较过程,生成脚本并将其检入GIT.有可能吗?如果是这样的话?
也许我会做这样的事情?使用EnvDTE自动化Visual Studio