6

moje rozwiązanie ma dwa projekty. jeden jest moim rzeczywistym projektem, a drugi to projekt instalacji. mój rzeczywisty projekt ma jeden folder raportów, w którym przechowuję mój cały raport ssrs.i ma jeden folder w projekcie instalacji o nazwie "SSRS_Repor". teraz chcę tego, gdy zrobię kompilację wsadową, a następnie skonfigurować do mojego projektu regeneracji, a następnie chcę skopiować wszystkie pliki z folderu raportów mojego rzeczywistego projektu do SSRS_Repor w moim projekcie instalacji. jeśli mogę zrobić tego rodzaju automatyzację kopiowania plików z jednej lokalizacji do innego folderu mojego projektu instalacji, to mógłbym pozbyć się ręcznego kopiowania plików rdls. ciężko jest to możliwe dzięki projektom instalacji/wdrażania. szukam google po szczegółowe instrukcje krok po kroku, ale nie mam dobrego linku. więc proszę, poprowadź mnie, jak mogę to zrobić.Jak skonfigurować zdarzenia po instalacji dla projektów instalacji/wdrażania w Visual Studio

i dodawać je do innego forum też i ktoś powiedział mi, poniżej tej

Open or create a setup/deployment project in Visual Studio 2005 
Press F4 to display the Properties window 
Click on the name of your setup/deployment project in the Solution Explorer 
Click on the PostBuildEvent item in the Properties window to cause a button labeled "..." to appear 
Click on the "..." button to display the Post-build Event Command Line dialog 
Add a command line of your choice in the Post-build event command line text box 
Build your project in Visual Studio and verify that the post-build event is executed after the main MSI build 

więc jest ok, ale co muszę napisać do kopiowania plików z jednej lokalizacji do innej lokalizacji, która nie jest dla mnie jasne, . więc teraz jest dla mnie najważniejsze, co napisać do kopiowania pliku podczas generowania konfiguracji.

Mam kolejną wskazówkę jak poniżej. skrypt do konfiguracji Przed/po utworzeniu zdarzenia, ale nie jest świadomy. Mam próbkę jak

kopii/Y "$ (TARGETDIR) $ (NazwaProjektu) .dll" "$ (SolutionDir) lib \ $ (NazwaProjektu) .dll"

powyższe stwierdzenie czy linia jest nie jest dla mnie jasne. co muszę napisać w moim przypadku? więc potrzebujesz instrukcji krok po kroku.

tu jest zrzut ekranu z mojego struktury projektu enter image description here

Odpowiedz

11

Aby odpowiedzieć na to pytanie wystarczy.

Polecenia wprowadzone w zdarzeniach kompilacji (przed pre i post) są takie same, jak w polu wiersza poleceń.

W przykładzie:

copy /Y "$(TargetDir)$(ProjectName).dll" "$(SolutionDir)lib\$(ProjectName).dll" 

kopia jest rzeczywista kopia polecenia DOS.

/Y to zwykły przełącznik, który uniemożliwia potwierdzenie potwierdzenia.

"$ (TargetDir) $ (ProjectName) .dll" to plik źródłowy do skopiowania.

"$ (SolutionDir) lib \ $ (ProjectName) .dll" jest miejscem docelowym do kopiowania pliku.

Można odwołać się tutaj do przekazania dodatkowych informacji na temat poleceń plik wsadowy: Batch command list

W $ ({Identifier}) są makra można użyć w programie Visual Studio Pre/post zbudować projektanta zdarzeń.

Można odwołać się do pomocy online MSDN więcej szczegółów na temat makr: MSDN Macros List

Linia dostarczane do Ciebie nie zrobi tego, co chcesz, jest zazwyczaj używany do kopiowania plików DLL do katalogu biblioteki używane przez niektórych innych projektów lub rozwiązanie.

Rozwiązanie znalezione w celu utworzenia nowego zdarzenia kompilacji jest poprawne.

Pozostało ci tylko napisać polecenie, które faktycznie skopiuje pliki.

To mogłoby wyglądać tak:

XCOPY "$(SolutionDir)TestProject\Reports\*.*" "$(SolutionDir)TestSetup1\SSRS_Repor" /Q /E /I 

/q: Cichy | Pliki są kopiowane

Nie wyświetlaj

/E: rekurencyjne (kopia struktura plików i podfolderów)

/I: uważają, że cel jest folder, jeśli jeszcze nie istnieje (utworzy nowy folder, jeśli jest to wymagane)

+4

Nie zapomnij skorzystać z przycisku Makra (po kliknięciu opcji Edytuj przed kompilacją lub edytowaniem późniejszej kompilacji), aby zobaczyć właściwości MSBuild. Bardzo pomocna rzecz. –