我开始在本地处理一些代码并使用Git(Git Gui和命令行)来管理它.我现在被要求将项目放入TFS"at corporate".我可以使用VPN连接远程访问TFS.
对于VS,代码是具有多个项目的单个解决方案.我使用VS成功地将解决方案添加到TFS,它似乎找到所有项目并将其.csproj文件和所有代码添加到TFS源代码控制.
后来,当没有连接到TFS(VPN off)时,我做了一个简单的更改并将其提交到我的本地Git存储库.我只有挫折试图(连接到VPN并尝试将更改提交到TFS).
我启动Visual Studio.有一个"团队资源管理器 - 主页"选项卡显示"主页|离线".我检查工具/选项/源代码控制,TFS是当前版本控制提供程序.
我单击团队资源管理器工具栏上的"插件"图标; 它会记住连接,现在显示"Connect | Offline"; 下面是一个包含"选择团队项目..."链接的行,以及两个在每个部分旁边都有向下三角形的部分.一个具有TFS服务器名称(后跟(1)); 在那之下是(仅)"团队项目"的名称,其中存储在TFS中.另一部分有"Local Git Repositories(1)",并显示解决方案的名称,并在其旁边显示解决方案目录的路径.标签标题为"团队资源管理器 - 连接".我双击团队项目的名称,选项卡标题更改为"团队资源管理器 - 主页",屏幕显示"主页| {teamProjName}"和两个部分.一个人有"项目","Web门户"和通常的" 待更改","源控制资源管理器",以下等图标部分;以及另一部分"解决方案",其中包含"工作空间:{workspaceName} | 新... | "打开..."; 下面是单个解决方案文件.我双击解决方案名称,现在屏幕显示"Home | solutionName(Local)"; 解决方案部分现在有"Branch:master"(Git的证据)和工具/选项/源控件说它已更改为Microsoft Git Provider.如果我将其更改回TFS,它会显示"Home | Offline",我必须再次点击"插件"图标 - 我就回到我开始的地方,除了它说"Connect | {solutionName}(Local) )" 解决方案"有一条线"工作区:{workspaceName} | 新... | "打开..."; 下面是单个解决方案文件.我双击解决方案名称,现在屏幕显示"Home | solutionName(Local)"; 解决方案部分现在有"Branch:master"(Git的证据)和工具/选项/源控件说它已更改为Microsoft Git Provider.如果我将其更改回TFS,它会显示"Home | Offline",我必须再次点击"插件"图标 - 我就回到我开始的地方,除了它说"Connect | {solutionName}(Local) )" 解决方案"有一条线"工作区:{workspaceName} | 新... | "打开..."; 下面是单个解决方案文件.我双击解决方案名称,现在屏幕显示"Home | solutionName(Local)"; 解决方案部分现在有"Branch:master"(Git的证据)和工具/选项/源控件说它已更改为Microsoft Git Provider.如果我将其更改回TFS,它会显示"Home | Offline",我必须再次点击"插件"图标 - 我就回到我开始的地方,除了它说"Connect | {solutionName}(Local) )" 解决方案部分现在有"Branch:master"(Git的证据)和工具/选项/源控件说它已更改为Microsoft Git Provider.如果我将其更改回TFS,它会显示"Home …
我的理解是,Windows Server 2012 中各种 GUI 组件(例如,在磁盘管理中)所做的几乎所有“实际工作”都是通过调用 Powershell 来执行的。(也就是说,在 GUI 中没有什么是 Powershell 无法完成的。)
在您使用 GUI 时查看和/或收集 Windows 执行的各种 Powershell 操作的能力将非常有价值。您可以打开此功能,完成您需要做的配置工作,然后将其关闭,从而生成一个或多个 Powershell 脚本,使您手动完成的工作自动化。(当然,脚本可能会以各种方式参数化。)不必弄清楚哪些 cmdlet 用于执行各种任务以及传递给它们的选项,所节省的时间将是巨大的——甚至仅仅知道使用了哪些 cmdlet 就可以让您在弄清楚如何实现自动化方面有很大的帮助。
此功能就像在 Excel 中打开宏记录器,执行操作,然后将其关闭——检查生成的宏会告诉您正在操作哪些底层对象,以及如何获得使用图形用户界面。
这种能力存在吗?你如何打开和关闭它?(我已经在谷歌上搜索并愚蠢地狂欢,但没有看到任何说明如何做到这一点的东西——或者甚至明确表示这是可能的——即使我发誓我已经在一些博客或播客上读过/听说过它,回到我不关心 Powershell 的时候。)
任何信息,将不胜感激。
我检查了变更集,但没有实际涉及这些变更的所有文件.(编译中检查的代码,但我错过的代码是"逻辑连接" - 签入的代码定义了一个新的接口,我错过的文件现在实现了该接口.)
这是最新的变更集.我还没有找到任何方法来添加文件; 我所能做的就是用额外的文件检查另一个变更集.
在查看变更集时似乎无法添加更多文件.
在Git中,我可以"修改最后一次提交"(甚至使用"修改历史记录"机制),但这在TFS中似乎不可能.
这只是使用Git更快乐的另一个原因吗?
我想使用基于XPDF的PDFTOTEXT命令行工具查看PDF文件,希望得到UTF-8输出.我在StackOverflow上看到其他人得到它 - 问题4039930,3809761和13618330表明其他人已经能够使用它.
当我使用该选项时,-enc utf-8会显示以下消息:
Syntax Error: Couldn't find unicodeMap file for the 'utf-8' encoding
Config Error: Couldn't get text encoding
Run Code Online (Sandbox Code Playgroud)
我已经看到文档(其中)UTF-8编码是"预定义的"但我找不到我需要指向的文件.(我已经看过基于XPDF的软件的多个不同下载,但还没有找到它.)
任何指针将不胜感激.
编辑:我在Windows上.
当尝试在运行时定位类型(通常是类)时,如果名称传递给
Type.GetType(string typeName, bool throwOnError = True)
Run Code Online (Sandbox Code Playgroud)
无法定位重载,引发的异常是 TypeLoadException。
我理解这背后的想法是 CLR 认为问题在于我们(尚未)加载包含所寻求类型的(或任何)程序集,但我的想法是问题在于CLR 找不到指定名称的类。(当然,这个名字可能拼写错误。)
如果我想告诉我的面向反射的运行时定义代码工具的客户他们要求的类没有找到,我似乎有两个选择——要么用 TypeLoadException 告诉他们,要么定义我自己的 ClassNotFoundException 。
我发现这个链接提供了有关创建自定义异常类(在 C# 中)的信息(显然很好而且当然很完整),但是对于(正确实现)这样一个简单的想法来说,需要做大量的工作。
看来我还想构建一些知道我认为我的客户可能想要使用的公共类(或其名称空间)的程序集名称的东西,以便在我的用户请求时我可以加载正确的程序集类位于一个有点知名但尚未加载的程序集中。这似乎也是 BCL 很可能为我们提供的一个 Feechur。(我想这就是 AppDomain.TypeResolve 事件的用途,但我将提出一个单独的问题来尝试找到该概念的易于重用和可扩展的实现。)
同时,我会再问一遍——为什么 ClassNotFoundException 还没有定义?