我们在局域网上的专用机箱上运行TFS 2010,并通过VS2010连接到它.在过去的几周里,访问/退出文件的访问时间和时间都很荒谬.有时甚至可能需要几分钟才能获得存储库的视图.
我们检查了网络访问时间,一切看起来都是有序的 - 例如RDP和服务器上安装的共享速度并不是很慢,所以看起来TFS是罪魁祸首.任何人都可以建议我们应该研究哪些明显的领
我需要创建两个方法如下:
我做了一些谷歌搜索,发现了一些链接,并设法提出了一些代码.我似乎无法找出调用方法来获取变更集项的完整列表.我把一些东西搞得一团糟但想知道是否有人可以帮助我:
TfsTeamProjectCollection projectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://mydomain.com:8080/tfs"));
VersionControlServer versionControl = projectCollection.GetService<VersionControlServer>();
int latestId = versionControl.GetLatestChangesetId();
List<Changeset> changesetList = new List<Changeset>();
for (int i = 1; i < latestId; i++)
{
try
{
Changeset cs = versionControl.GetChangeset(i);
if (cs != null)
{
changesetList.Add(cs);
}
}
catch (ResourceAccessException)
{
}
}
Run Code Online (Sandbox Code Playgroud)
获取某些Id的变更集会抛出"ResourceAccessException"异常,这就是添加处理程序的原因.
关于如何以"正确"的方式做到这一点的任何想法?
我正在使用Visual Studio 2010和TFS 2010.应用程序是用C#编写的.Net 4.0应用程序.
TIA
我是powershell的新手,我正在尝试自动删除先前版本的网站,并添加新版本作为TFS 2010构建模板(Windows Workflow 4.0)的一部分.是否可以通过PowerShell查看IIS7中是否存在网站或Web应用程序池?我试过运行以下命令:
import-module WebAdministration
Get-Website -Name "Default Web Site"
Run Code Online (Sandbox Code Playgroud)
输出列出了盒子上安装的所有网站,而不仅仅是默认网站.
Name ID State Physical Path Bindings
-------------------------------------------------------------------------
Default Web Site 1 Started %SystemDrive%\inetpub\wwwroot http *:80:
net.tcp 808:*
net.pipe *
net.msmq localhost
msmq.formatname localhost
MyWebsite1 2 Started C:\inetpub\MyWebsite1 http *:80:mywebsite1.com
MyWebsite2 3 Started C:\inetpub\MyWebsite2 http *:80:mywebsite2.com
Run Code Online (Sandbox Code Playgroud)
如果我尝试运行没有"-Name"参数的命令,结果完全相同.
对于TFS 2010中的构建过程,我创建了一个包含一些自定义代码活动的库.在过去,通过将库(*.dll)添加到源代码控制并将"构建控制器 - 自定义程序集的版本控制路径"设置为可在源代码管理中找到库的路径,一切正常.
但是几天之后(我经常更新库),构建不再成功.报告的错误是:
TF215097:初始化构建定义的构建时发生错误"无法创建未知类型"{clr-namespace:BuildTasks; assembly = BuildTasks}'"
搜索后,除了将库安装到GAC之外,我找不到任何其他解决方案.这有效,但我想知道为什么不必安装到GAC就无法工作.
因此,虽然它现在再次运行,但我希望在没有GAC的情况下以旧方式恢复工作.希望你们中的一些人可以帮助我.提前致谢.
将变更集与工作项关联时,TFS默认为解析工作项.我想默认关联它.
我知道在TFS 2008中你必须使用像http://www.woodwardweb.com/vsts/000230.html这样的东西删除解决登记操作,但我认为我在某处读到有更好的方法来执行此操作TFS 2010.有谁知道是否是这种情况?
比尔,比尔
我有一个在VS 2008中正常构建的项目,然后我们安装并开始使用TFS Build,然后我们升级到TFS 2010.一切都很好并且构建正确(在我实现新的构建过程之后,使一切都非常好从任何远程Visual Studio 2010客户端单击构建启动).Visual Studio不需要安装在Build Agent上.我非常努力(非常努力)不在构建代理上安装Visual Studio,因为我的理解是没有必要,并且我们没有许可将它安装在非开发机器上.
现在我尝试将解决方案升级到VS 2010,仍然针对.NET 3.5,因为它是针对SQL Server CLR过程的程序集,而SQL Server还不支持.NET 4.0.但我根本无法在TFS Build下进行构建.我似乎无法从TFS Build和MS Build命令行获得一致的错误消息,但我认为它与Microsoft.Cpp.Targets不在C:\ Program Files\MSBuild \中有关,因为我没有没有安装Visual Studio.我确实安装了Microsoft Windows SDK 7.1,这样我就可以为其他一些.NET 4.0项目运行像svcutil这样的.NET 4.0 SDK工具,但似乎没有安装这个构建所需的东西.TFS构建错误给我的是:
C:\ TFSBld [...]\GenerateLanguage\GenerateLanguage.vcxproj(46,3):错误MSB4019:找不到导入的项目"C:\ Microsoft.Cpp.Default.props".确认声明中的路径是否正确,以及该文件是否存在于磁盘上.
当我点击该错误时,它会将我带到vcxproj文件中的这一行:
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
Run Code Online (Sandbox Code Playgroud)
我真正需要在这个项目中运行resgen来从resx文件生成资源文件,并将它们编译成sattelite程序集.我正在使用makefile构建来执行此操作,手动运行resgen(我认为这是因为我无法找到将sattelite程序集编译为独立解决方案的方法),然后将它们编译成DLL(I不记得现在怎么工作,但我认为是手动运行AL.exe从资源文件编译DLL文件).所以基本上我只需要运行命令行来构建这个项目,我似乎找不到合理的方法来做到这一点而不抛弃整个项目并编辑TFS构建脚本来运行一堆硬编码的命令行代替.必须有一个更好的方法.
我整天都在这里,并尝试编写我自己的.targets文件和.xml属性表来取代标准文件,但它已经超出了我的想象.我试过简单地删除这些行,但是然后MSBuild抱怨没有"Build"目标.我尝试在vcxproj文件中添加一个虚拟对象,但是它似乎没有运行完成所有工作的构建前和构建后步骤.
作为构建过程的一部分,我们使用MSDeploy部署Web应用程序.这种方法在几个星期前就完美了(我想我们将构建/ TFS服务器更新到TFS 2010的SP1时).
在我们的构建定义中,有一个调用进程的步骤.此过程将调用生成的deploy.cmd文件并传入一些其他参数.这很好用了很长时间,但现在我们得到了这个:
错误:无法识别的参数'"-skip:objectName = filePath,absolutePath =.*cmsservices.config"'.所有参数必须以" - "开头.
如帮助中所述,我们使用引号传递其他参数:
WebApplication.deploy.cmd/Y/M:sv-ad-iis02 -allowUntrusted"-skip:objectName = filePath,absolutePath =.*cmsservices.config"" - skip:objectName = filePath,absolutePath =.*servicemodel.client.config ""-skip:objectName = dirPath,absolutePath = app_data"
但是,这个技巧不再适用.删除引号也将删除任何字符,如=和,将替换为空格.
我将其追溯(通过将旧的deploy.cmd与新版本进行比较)到此行:
第76行:
@rem Any addition flags, pass through to the msdeploy
set _ArgMsDeployAdditionalFlags=%_ArgMsDeployAdditionalFlags% %_ArgCurrentOriginal%
Run Code Online (Sandbox Code Playgroud)
在之前的版本中,这是:
@rem Any addition flags, pass through to the msdeploy
set _ArgMsDeployAdditionalFlags=%_ArgMsDeployAdditionalFlags% %_ArgCurrent%
Run Code Online (Sandbox Code Playgroud)
_ArgCurrentOriginal使用%1而不是%~1,如果我更改此代码,它将再次起作用.但是每次都会自动生成deploy.cmd文件(至少它看起来像)
任何线索为什么这已经改变以及如何处理这个?
更新; 我通过使用环境变量来传递这些值来解决这个问题.它仍然无法解决新的deploy.cmd文件以不同方式转义引号的问题.
我现在放在部署流程工作流程中的解决方案:
<mtbwa:InvokeProcess Arguments="[String.Format("/Y /M:{0} -allowUntrusted", DeploymentServerName)]" DisplayName="Deploy selected Web Application using MSDeploy" EnvironmentVariables="[New Dictionary(Of String, String) From {{"_MsDeployAdditionalFlags", …Run Code Online (Sandbox Code Playgroud) 我有许多机器,所有机器都安装了Visual Studio,其中某些东西(可能是视觉工作室)覆盖了代理设置:为HTTP和HTTPS设置localhost和一些随机端口.在"不要使用代理服务器"框中,它放置<vsts-proxy-installed-indicator>可能是标签,因此它知道它已完成.

这有时会阻止浏览器在我的桌面上工作,最近,在我们的构建服务器上更改了它,这导致代码签名步骤(连接到外部时间戳服务器)整天失败,直到我最终发现此代理问题.
什么在改变这些设置?为什么要改变它们?我该如何关闭它?
请注意,还有一个关于此问题的服务器故障问题:什么是插入"vsts-proxy-installed-indicator"?但由于这是一个特定于Visual Studio的问题,我认为在这里提问可能会更好.
我有我的TFS 2010结构如下:
ProjectCollectionA
..trunk
....Dev (this is a branch)
...Website1(these are folders)
...Website2
....Release(this is a branch)
...Website1(these are folders)
...Website2
Run Code Online (Sandbox Code Playgroud)
无论出于何种原因,我开发并发布了Branches和Website1,Website2作为文件夹.我的问题是我应该将开发和发布作为文件夹,将Website1和Website2作为分支吗?那更有意义吗?这里的最佳做法是什么?这种或那种方式有哪些优点或缺点?谢谢您的帮助
最近在办公室,我们一直在谈论将大文件放入我们的TFS存储库.这些文件本身就是XML,通常大小为100-200MB,有时甚至大到1GB.我们将它们用作自动化测试的数据,它们大部分都是静态的(每年左右进行一次小调整).无论如何,有一种想法是将这样的文件放入存储库是一个禁忌,因为它们"很大"并且会使事情变得"慢"(在原始登记/退出之外)但我们并不是真的有任何证据支持这一点.
所以我的问题是,将大型静态文件放入源代码存储库(例如TFS(或SVN,Git等)的优点/缺点/含义是否可以?它会"填满服务器"还是会产生其他可怕的后果?
tfs2010 ×10
tfs ×3
.net ×2
tfsbuild ×2
branch ×1
c# ×1
checkin ×1
iis-7 ×1
msbuild ×1
msdeploy ×1
networking ×1
performance ×1
powershell ×1
team-build ×1
workitem ×1