Edi Wang

DevOps 35


VS2013连接TFS报错Key not valid for use in specified state解决办法

前不久我的VS2013突然爆了,连接TFS的时候报错"Key not valid for use in specified state",就像这样: 经查,这是微软的产品bug。具体表现为:一旦你修改了登录密码(不管是本地账户还是域账户),VS就再也连不上TFS了。目前微软没有针对这个问题的补丁。临时解决方法如下: 打开注册表,转到“[HKEY_CURRENT_USER\Software\Microsoft\VSCommon\12.0\ClientServices\TokenStorage]”,把整个“TokenStorage”节点删掉。 重启VS2013,这时候会要求你再次输入TFS的身份信息,就OK了。 太坑爹了。...

TFS Visual Studio

在IIS服务器上安装和配置Web Deploy (WS2008R2)

作为ASP.NET开发者,部署应用到测试或生产环境是家常便饭。不知道大家平时都是怎么部署网站的?手工拷贝文件?FTP?还是高端的package解压?对我来说,最方便的还是WebDeploy,它可以让我从Visual Studio中一键部署网站到IIS服务器,并且智能判断哪些文件是新增的,哪些是需要修改或删除的。Windows Azure Website就默认支持这样的部署方式。但我们不可能一直在公有云上做开发,如果我们想把这样方便的功能带到本地怎么办呢? 经过开荒,我在Windows Server 2008 R2和Windows Server 2012 R2上都成功配置了Web Deploy。目前用的最多的还是WS2008R2,所以我就带大家来看看如何在这款系统上安装和配置Web Deploy。 首先,你需要在IIS上安装管理服务。 在Server Manager(服务器管理)里面,...

IIS Web Deploy

如何删除TFS上的WorkItem

我们知道,在TFS上万一建错了Work Item是删不掉的。最多把状态设置为Removed不会显示而已。但如果我们想真正删除一个Work Item就需要一些技巧了。 首先,你电脑上必须安装了Visual Studio(这个大部分用TFS的程序员都应该有吧),并且你登录TFS的账户必须是当前Collection的管理员。不然是没有权限删除work item的。 登录TFS后,找到要删除的work item ID,如下图: 然后启动VS的命令行工具 Developer Command,运行下面这条命令: witadmin destroywi /collection:"你的TFS Collection地址" /id:要删除的Work Item ID 等删除确认出来后,然后按“y”确认。就可以成功删除了。...

TFS

How to Change TFS Server URL in Visual Studio

今天又给大家带来一个实用装逼技巧。这个故事的起因是我无意中发现微软的TFS Service支持URL重命名了,非常牛逼,就像这样: 但带来的问题就是我们需要手动更改以前所有使用这个TFS地址的地方。Visual Studio就是首当其冲的了。很可惜,在VS里面,是没有办法直接编辑TFS地址的。 如果删掉重建的话,还需要把之前所有的本地文件夹都映射一遍,万一玩脱了就爆了。所以还是建议去注册表手动修改。 要修改的位置是: HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\TeamFoundation\Instances (如果你用的是VS2010,就把11.0换成10.0) 第一处:定位到原TFS地址的文件夹,把右边的Uri字段改掉。 第二处: 还有有个很阴巴的文件夹,藏在你的TFS文件夹下面,展开TFS文件夹,...

TFS Visual Studio

如何手动将一个普通.NET类库转换成可移植类库(Portable Class Library)

可移植类库是.NET程序员装逼的必备良药,至于它有多牛逼,我也不知道,大家可以自己看一下 http://msdn.microsoft.com/en-us/library/vstudio/gg597391%28v=vs.110%29.aspx 但是万一你装逼的时候手一滑,建成了一个普通的Class Library肿么办?普通青年的做法是删掉再建一个,这当然是OK的。但是,作为文艺青年,我们可以继续装逼:自己动手把这个类库转换成Portable Class Library。 为了演示,我先建一个普通的.NET类库:AVeryNBClassLibrary 在这个项目的属性页里面,自然是看不到Portable Class Library的选项的。 接下来,在项目上点右键,选择Unload Project,然后再次右键选择Edit AVeryNBClassLibrary.csproj...

.NET PCL Portable Class Library

如何在公司Http代理后使用NuGet官方源

有些公司上网使用的是Http代理。默认情况下,VS是无法访问外部网络的。如果要使用NuGet,通常只能在局域网里架一个自己的NuGet服务器。但这种方法不论是package的数量还是更新频率都远远不如官方NuGet。所以有必要想个办法通过代理访问NuGet官方源。 NuGet的官方源地址是:https://nuget.org/api/v2/ 在VS的设置页面中可以配: 确认这个地址无误后,需要手动对VS的两处设置做更改,才能让VS用代理访问外部网络。 首先,关闭VS。打开VS安装目录,比如:D:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE 下的“devenv.exe.config”。 然后修改System.Net节点如下,proxyaddress改成你自己的代理地址。...

NuGet Proxy 代理

[图解]TFS2010升级到TFS2012

TFS2010无法通过安装包自动升级到TFS2012,必须手动完成,要升级TFS2012,首先得满足这几个条件: 1. TFS2010必须安装SP1 2. SQL Server 2008 R2必须安装SP2 不过,不管你升级的TFS2012是中文版还是英文版,TFS2010的语言可以任意。 升级的步骤如下: 1. 在TFS2010的管理控制台中,打开“团队项目集合”,然后选中你要迁移的项目集合,在界面下方点击“分离集合”。 2. 在弹出的向导中输入你的备注 3. 一切检查就绪,可以忽略那个警告。 4. 点击“分离”,等待操作完成。 5. 为了保险起见,建议备份TFS的数据库。数据库为TFS_Configuration和你的项目集合数据库。 6. 接下来就可以卸载TFS2010,然后安装TFS2012了。在TFS2012安装完成后,弹出的配置向导中选择...

Visual Studio TFS2010 TFS2012

[图解]VS2012在Surface RT上远程调试App

最近蛋疼,所以废话不多,直接切入正题。首先这次要说的是Surface RT,是RT版的,ARM处理器的,别弄错了。我们要做的是把工作机上写好的程序放在Surface RT远程调试,而不是在本机和模拟器中运行。 第一步,在Surface RT上安装微软官方的debugger:http://go.microsoft.com/?linkid=9810474 这个debugger是桌面环境下运行的,安装的时候需要管理员权限。 装完以后,开始屏幕上会出现这两个图标,我们要用的是第一个:Remote Debugger。 启动Remote Debugger,正常情况会让你配一些Windows防火墙,你可以完全按照向导来,最终会出现一个Monitor对话框,证明debugger已经在监听连接了。 接下来有个比较有技巧的地方,如果你的Surface RT上的当前用户和开发程序的机器的登...

Debug VS2012 Surface Windows 8 ARM

Force Visual Studio Always Run As Administrator

If you are doing ASP.NET development that requrie your project bind to IIS, you will need to open Visual Studio every time as Administrator, which is annoying.  However, there's a way to make Visual Studio run as Administrator by default every time without shutting down UAC on your system. 1. Find your Visual Studio install path For example, I am using Visual Studio 2017.3 Preview, so my instal...

Visual Studio UAC

代码合并工具Beyond Compare的使用技巧

平时做代码合并(Merge)的时候,TFS有时不够牛逼,需要手动合并,经常使用的工具是Beyond Compare。哥今天给大家介绍一下一些加快工作效率的小技巧。 首先,在Beyond Compare 3里,因为整合了资源管理器菜单,所以可以直接选中两个文件夹进行比较,而不用打开软件手动选路径。如果两个文件夹不在同一目录下,也可以分两次选择。 在打开比较视图后,一定记得点下这个按钮,才会做到真正的逐文件扫描。不然默认情况下是快速比较的。 比较完成后,我们可以设置一个过滤器,过滤不需要合并的文件。比如,在.NET项目下,VS的user文件、VSS和TFS的版本控制文件、Bin、Debug等目录都可以忽略。就可以在过滤器里这样设置。如果你不希望每次做代码合并都设置一次过滤器,只要在左下角选择“也更新会话默认值”就OK了。 在代码合并的过程中,通常有新增的文件和修改的文件。我...

TFS Beyond Compare