作为我的nuget包的一部分,我有一个 install.ps1 powershell脚本,我用它来从包中添加一个参考文件(几个文本文档)工具文件夹。
一切都很好,除了在TFS解决方案中引用文件时,它们会被添加到团队资源管理器待定更改中。如何将其从待处理的更改中删除(或让它们不再显示)?我不希望这些检入TFS,因为包文件夹不应该在那里。
这是我的install.ps1脚本:
param($installPath, $toolsPath, $package, $project)
#Add reference text files to the project and opens them
Get-ChildItem $toolsPath -Filter *.txt |
ForEach-Object {
$projItem = $project.ProjectItems.AddFromFile($_.FullName)
If ($projItem -ne $null) {
$projItem.Properties.Item("BuildAction").Value = 0 # Set BuildAction to None
}
}
答案 0 :(得分:0)
如果您正在使用本地工作区(TFS 2012+),则可以使用.tfignore文件排除本地文件夹和文件显示在团队资源管理器的“待更改”页面中。
您可以通过将名为.tfignore的文本文件放在要应用规则的文件夹中来配置要忽略的文件类型。
.tfignore文件规则
The following rules apply to a .tfignore file:
- \# begins a comment line
- The \* and ? wildcards are supported.
- A filespec is recursive unless prefixed by the \\ character.
- ! negates a filespec (files that match the pattern are not ignored)
.tfignore文件示例
######################################
# Ignore .cpp files in the ProjA sub-folder and all its subfolders
ProjA\*.cpp
#
# Ignore .txt files in this folder
\*.txt
#
# Ignore .xml files in this folder and all its sub-folders
*.xml
#
# Ignore all files in the Temp sub-folder
\Temp
#
# Do not ignore .dll files in this folder nor in any of its sub-folders
!*.dll
答案 1 :(得分:0)
我终于想出了如何使用tf.exe来做到这一点。使用完整文件名调用tf vc undo
将撤消对这些文件的挂起更改。如果文件夹不与TFS绑定,则不会造成任何伤害。它只是继续。
此实现确实需要安装VS 2015(由于IDE文件夹的硬编码路径),因此我正在寻找更好的方法来获取当前加载的IDE的IDE路径。但就目前而言,这解决了我当前的问题。
param($installPath, $toolsPath, $package, $project)
$idePath = "$env:VS140COMNTOOLS..\IDE"
$tfPath = "$idePath\tf.exe"
Get-ChildItem $toolsPath -Filter *.txt |
ForEach-Object {
$projItem = $project.ProjectItems.AddFromFile($_.FullName)
If ($projItem -ne $null) {
$projItem.Properties.Item("BuildAction").Value = 0 # Set BuildAction to None
$filename = $_.FullName
& $tfPath vc undo `"$filename`" # Remove File from TFS Pending Changes, as AddFromFile can automatically add it
}
}