To pytanie zostało zadane jakiś czas temu, ale dotyczy tego samego rodzaju problemu, który miałem.
Problem:
- Chcemy sprawdzić nasz kod.
- Następnie chcemy zbudować nasz projekt.
- Podczas budowania polegamy na wydarzeniach kompilacji, aby przenosić pliki, więc mamy odpowiednie pliki na miejscu, aby proces kompilacji mógł się zakończyć.
- Kiedy zdarzenie kompilacji próbuje skopiować pliki, otrzymujemy błędy odmowy dostępu.
Powód:
- Team Foundation Server Visual Studio Plugin zmienia atrybut Tylko do odczytu w naszych plikach na PRAWDA TYLKO DO ODCZYTU, gdy sprawdzamy nasze pliki.
Przykład wydarzenia tworzenia:
- skopiuj „$ (TargetDir) SomeFile.ext” „$ (ProjectDir)”
Powyżej musimy po prostu przenieść plik z naszej docelowej ścieżki budowania (foldery bin \ debug lub bin \ release) do naszego folderu projektu. W mojej sytuacji było to po to, aby móc dołączyć pliki zbudowane w ramach projektu do mojego instalatora. Mój Instalator nie pobrał ich jako części danych wyjściowych projektu.
Poprawka: (prawie kopnąłem się w twarz, kiedy się zorientowałem)
Nowe wydarzenie kompilacji:
- attribute -R "$ (ProjectDir) SomeFile.ext"
- skopiuj „$ (TargetDir) SomeFile.ext” „$ (ProjectDir)”
- atrybut + R "$ (ProjectDir) SomeFile.ext"
Wszyscy dobrze się bawimy podczas wydarzeń kompilacji, prawda? Powyżej po prostu robię 2 rzeczy, usuwam atrybut tylko do odczytu, teraz pliki nie są tylko do odczytu. Skopiuj mój plik tak, jak chciałem. Następnie zamień atrybut tylko do odczytu (opcjonalny, jak sądzę), aby zapewnić zadowolenie z programu Visual Studio i fundacji zespołu.
I tak ... nadal kopie się w twarz na tym.