Những câu trả lời khác cho câu hỏi này có xu hướng giả sử bạn đang không sử dụng VisualStudio nhưng MSBuild trực tiếp hoặc có một dự án hiện mà bạn có thể thêm một bước tùy chỉnh xây dựng hoặc một sự kiện xây dựng (Tôi đã tìm thấy loại sự kiện xây dựng của các lỗi giải pháp dễ bị vì chúng sẽ không luôn sao chép các tệp khi bạn cần chúng sao chép).
Nếu bạn muốn một dự án VisualStudio chỉ thực hiện một bản sao, bạn có thể thực hiện việc này với một chứng khoán VisualStudio với dự án Makefile.
Dự án Makefile có thể làm bất kỳ điều gì bạn có thể làm từ dòng lệnh. Rõ ràng điều này có nghĩa là bạn có thể tạo một dự án Makefile chỉ sao chép các tệp. Trong Thuộc tính một dự án Makefile của ⇒ Cấu hình Thuộc tính ⇒ nmake phần là các trường cho xây dựng, xây dựng lại, và hành động sạch. Chúng có thể được phổ biến với các lệnh tập tin batch cũ. Trên mọi bản dựng, VisualStudio sẽ tạo một tệp lô tạm thời từ trường thích hợp và thực thi nó bằng lệnh cmd. Cảnh báo bạn sẽ nhận được trình thông dịch cmd 32 bit trên máy 64 bit, do đó bạn cần sử dụng thư mục sysnative huyền diệu nếu bạn muốn truy cập lệnh hoặc cửa sổ 64 bit. được ghi lại ở bất kỳ nơi nào, do đó, có thể không phải lúc nào cũng xảy ra - kịch bản lệnh hàng loạt của bạn phải mạnh mẽ chống lại bit-ness thay đổi cmd. bit hoặc 64-bit) sẽ chạy mã:
if /i "%programfiles%"=="%programfiles(x86)%" if /i not "%programfiles%"=="%programw6432%" (
REM 32 bit cmd on 64-bit computer
REM Use the 'sysnative' fake directory to get to 64-bit system32 files
) else (
if /i not "%programfiles%"=="%programfiles(x86)%" if /i "%programfiles%"=="%programw6432%" (
REM 64 bit cmd on 64-bit computer
REM Use the 'system32' directory to get to 64-bit system32 files
) else (
echo "Cannot do 64-bit on 32-bit computer"
copy foobar
)
)
(thie "copy foobar" line abo ve sẽ thất bại khiến việc xây dựng thất bại.)
Lưu ý, VisualStudio (và MSBuild) sẽ luôn luôn chạy dự án Makefile - nó không kiểm tra dấu thời gian trên tệp đầu ra mà thay vào đó hãy thực hiện công việc theo ý muốn là một số công cụ xây dựng khác (nmake, cmake, make, ant, maven, v.v.). Vì, trong trường hợp này chỉ có một lệnh sao chép đơn giản và không phải là một số chương trình kiểm tra có hay không thực hiện sao chép, bản sao xảy ra trên mọi bản dựng.
VisualStudio luôn chạy dự án makefile cũng có nghĩa là mỗi khi bạn nhấn F5 để gỡ lỗi dự án của bạn, VisualStudio sẽ làm phiền bạn với một cửa sổ pop kém worded lên một hộp thoại (nếu bạn chưa nói với nó không) nói với bạn rằng dự án của bạn đã lỗi thời và bạn phải xây dựng lại nó. Nếu bạn yêu cầu VisualStudio không hiển thị hộp thoại, nó sẽ chỉ thực hiện sao chép mà không hỏi trước khi chạy tệp thực thi.
Tại sao bạn không thể tạo tệp lô hoặc tệp lệnh để thực hiện sao chép? –
@JB King, tôi muốn tích hợp/bao bọc mọi thứ vào msbuild. Bất kỳ ý tưởng hoặc mẫu được đề nghị? – George2
Xem câu trả lời của tôi bên dưới. –