packages
폴더 를 무시하기 위해 TFS (2013)를 가져 오려고 합니다. 열정적으로 NuGet을 사용하면서 소스 제어를 원하지 않으며 훌륭합니다!
클로킹을 시도했지만 (작동하지 않는 것 같습니다) .tfignore
파일을 추가하려고 시도했지만 아무것도 무시되지 않습니다. 왜 TFS 팀은 많은 Subversion 클라이언트처럼 폴더 나 파일을 영구적으로 무시하는 옵션을 추가하지 않습니까?
답변
NuGet은 절대로하지 말아야 할 소스 제어 관련 작업 (잘못된 형식, Microsoft!)을 수행하려고하므로 패키지를 무시하도록 NuGet 과 TFS 에 알려야합니다 . 따라서 두 가지를해야합니다.
먼저 .tfignore
솔루션 폴더에 이름이 지정된 파일을 추가하십시오 ( s
뒤에는 없음 tf
). 내용은 다음과 같아야합니다.
\packages
이는 TFS가 패키지 폴더를 무시하도록 지시합니다. 이제 파일 도 무시할 것이라고 생각할 것 입니다 repositories.config
. 그러나 그렇지 않습니다. 왜? Microsoft의 길은 이상하고 신비합니다. 실제로, 나는 그것이 아래에 요약 된 NuGet 물건의 일부라고 생각하지만, 앞으로 수정 될 것이고 repositories.config
VS를 재생성하지 않고 파일 을 유지 하려면 다음을 사용할 수 있어야합니다.
\packages
!\packages\repositories.config
이제 .tfignore
파일 덕분에 TFS가 패키지를 무시합니다. 다 괜찮아요? NuGet은 소스 컨트롤을 사용하고 보류중인 변경 사항에 패키지를 추가하기 때문에 잘못되었습니다 . 이제 NuGet에게 이미 잘라내라고 알려 드리겠습니다.
.nuget
솔루션 폴더의 루트에 폴더를 작성하십시오 . 1 이제라는 파일을 만들어이 NuGet.config
새 폴더에 넣습니다 2 . 내용은 다음과 같아야합니다.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
그리고 지금 당신의 패키지는 소스 제어 밖으로 유지해야한다. 소스 제어에 NuGet.config
및 .tfignore
파일 을 추가하여 손실되지 않도록하십시오.
편집 : 문제가있는 경우 패키지 폴더를 삭제하고 변경 사항을 확인한 다음 위의 단계를 수행하십시오.
또한 편집 : 새로운 버전의 Nuget에서는 발생하지 않는 것 같습니다. 따라서 VS / TFS 2017로 전환하면 위의 농구대를 뛰어 넘지 않고이 문제가 해결됩니다.
1 . 소스 제어 탐색기를 사용하여 폴더를 추가하십시오. 솔루션-> 폴더 추가-> .nuget 2를 마우스 오른쪽 단추로 클릭하십시오 . VS 2013을 사용하여 이것을 알아 냈을 때 NuGet.config가 .nuget 폴더로 이동해야한다는 것을 알았습니다. 솔루션 폴더의 루트에 NuGet.config 파일이 이미있는 경우에도 (예 : 회사에 내부 Nuget 피드가 있기 때문에) 그러나 의견 중 일부는 VS 2015의 솔루션 루트에서 제대로 작동한다고 표시했습니다. 개인적으로 git 모드에서 TFS를 사용하도록 전환했기 때문에 테스트 할 수 없습니다. 또한 사용자 정의 피드가있는 경우 Nuget.config 파일에 사용자 정의 피드와 nuget.org가 키로 있는지 확인하십시오. 그렇지 않으면 TFS가 임의로 패키지를 복원 할 수 없다고 결정하는 경우도 있습니다.
답변
위의 대안은 다음과 같습니다.
- TFS에 패키지 폴더 추가 (파일 또는 하위 폴더 없음)
- 패키지 폴더를 마우스 오른쪽 버튼으로 클릭하십시오
- 왼쪽 클릭 고급
- 망토를 클릭
이 솔루션은 TFS 작업 공간마다 적용되어야합니다. .tfignore
파일을 사용하는 것보다 훨씬 안정적으로 작동했습니다 .
TFS가 설치된 NuGet 패키지를 소스 제어에 추가하지 못하게하는 블로그 기사에서이 방법에 대한 자세한 내용을 읽을 수 있습니다 .
답변
.tfignore 옵션이 nuget.config 설정에서 작동하지 않는다고보고하는 사람들에게는 관심이있을 수 있습니다.이 단계는 마침내 저에게 효과적이었습니다.
- 내 패키지 폴더에서 모든 것을 삭제하십시오
- 보류중인 폴더 주위에서 TFS에 변경 사항이 없는지 확인하십시오.
- VS 닫기
- VS를 다시 열고 솔루션을 다시로드하십시오-Nuget 복원을 사용하여 패키지를 다시 채우십시오. TFS 소스 제어에 대한 변경 사항이 보류되지 않습니다.
답변
솔루션의 .nuget 폴더에 nuget.config 파일을 추가하십시오. nuget.config 파일에 다음을 추가하십시오.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
</configuration>
disableSourceControlIntegration은 TFS 버전 제어를위한 비결입니다.
답변
작업 .tfignore
하려면 로컬 작업 공간을 사용해야합니다 . .tfignore
파일은 무시 할 파일이나 폴더가 포함 된 폴더에 있어야합니다.
솔루션 구조가 다음과 같다면 :
\Project
\Packages
\OtherStuff
foo.cs
.tfignore 파일을 \ Project에 넣습니다.
\Project
\Packages
\OtherStuff
foo.cs
.tfignore
귀하의 경우에 .tfignore의 내용은 다음과 같습니다.
\packages
다음은 몇 가지 설명서입니다. http://msdn.microsoft.com/library/vstudio/ms245454(v=vs.110).aspx#tfignore
답변
AppData\Roaming
모든 솔루션 (이전 및 새 솔루션) 에서이 일회용을 영구적으로 설정할 수 있습니다 !
당신의에서 %AppData%\NuGet\NuGet.Config
파일의 바로 앞에 다음을 추가 </configuration>
XML 태그는 …
<config>
<add key="repositoryPath" value="C:\NuGetPackages" />
</config>
<solution>
<add key="disableSourceControlIntegration" value="true" />
</solution>
… 원하는 경로를 지정할 수 있습니다. 중요한 것은 TFS 작업 영역 외부에 배치하는 것입니다!
이제 다시는 걱정할 필요가 없습니다. 솔루션 폴더에는 더 이상 패키지가 포함되지 않습니다. 모든 솔루션은 기본적으로 사용자 정의 패키지 위치를 대신 사용합니다.
참고-이 작업은 사용자별로 이루어집니다.
답변
빌드시 솔루션을 복원하도록 설정하면 패키지 폴더 및 패키지 파일이 체크인되지만 패키지는 체크인되지 않습니다.