2013-02-26 33 views
9

tôi có một dự án trong visual studio 2010. Dự án này có hậu sự kiện xây dựng dòng lệnh sau:Post-build lệnh cho sự kiện xuất bản (Visual Studio 2010)

SET TARGET_PROJECT=TestMain 
IF NOT EXIST "$(TargetDir)IceBox" (
    XCOPY /E /I /Y "$(SolutionDir)Externals\IceBox" "$(TargetDir)IceBox" 
) 
IF NOT EXIST "$(TargetDir)bzip2.dll" (
    COPY "$(SolutionDir)Externals\IceBox\bzip2.dll" "$(TargetDir)" 
) 
XCOPY /E /I /Y "$(SolutionDir)Externals\Infragistics" "$(TargetDir)" 

Nhưng lệnh này chỉ được sử dụng khi tôi tạo một bản sửa lỗi hoặc bản phát hành. Khi tôi xuất bản dự án của tôi sẽ bỏ qua các lệnh này. Cung cấp cho nó khả năng sử dụng các lệnh này khi tôi xuất bản dự án?

Cảm ơn bạn đã được trợ giúp.

+0

lẽ https://stackoverflow.com/questions/3561689/afterpublish-target-not-working sẽ được sử dụng – Spikolynn

+0

Các giải pháp trên không làm việc ok. Nhưng điều này đã làm: https://stackoverflow.com/questions/19456112/afterpublish-script-doesnt-run-when-i-publish-a-web-app – Spikolynn

Trả lời

9

Gần đây tôi đã gặp phải sự cố tương tự. Tôi muốn chạy một lệnh 'chỉ' nếu tôi xuất bản ứng dụng và không phải với mọi bản dựng.

Tôi đã thêm một bài đăng xuất bản task. Vì tôi không sử dụng trực tiếp MSBuild tôi đã sửa đổi tệp csproj giải pháp của mình.

Ví dụ:

Tên Giải pháp: MyKillerApp tên

Project File: MyKillerApp.csproj

Mở tập tin với Notepad ++ hoặc soạn thảo văn bản khác và điều hướng đến cuối tập tin và tìm phần này (nên gần như ở cuối):

<PropertyGroup> 
    <PreBuildEvent> 
    </PreBuildEvent> 
    </PropertyGroup> 

Sau đó thêm nhiệm vụ postpublish bạn

<PropertyGroup> 
    <PreBuildEvent> 
    </PreBuildEvent> 
    </PropertyGroup> 
    <Target Name="AfterPublish"> 
    <Exec Command="..\..\Documentation\DoxyGenExe\createDocs.bat" /> 
    </Target> 

nhiệm vụ của tôi chạy một file bat chạy Doxygen (một chương trình tài liệu tạo ra rất đẹp) và một số nhiệm vụ khác.

Bạn có thể tạo một file bat để chạy bất kỳ lệnh là rất tiện dụng

Các vấn đề liên quan