6

我的解決方案有兩個項目。一個是我的實際項目,另一個是設置項目。我的實際項目有一個報告文件夾,我存儲我所有的ssrs報告。我在安裝項目中有一個名爲「SSRS_Repor」的文件夾。現在我想,當我將做批量生成然後安裝我的項目重新生成,然後我想從我的實際項目的報告文件夾中的所有文件複製到我的安裝項目中的SSRS_Repor。如果我可以做這種從一個位置複製文件到我的安裝項目的另一個文件夾的自動化,那麼我可以擺脫rdls文件的手動複製。我很難通過安裝/部署項目來實現這一點。我詳細搜索谷歌這一步的指示,但沒有得到很好的鏈接。所以請指導我如何做到這一點。如何在Visual Studio中爲安裝/部署項目配置生成後事件

我把它發佈到另一個論壇也和一些人告訴我下面這個

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 

所以很確定,但我需要寫從一個位置複製文件,是不是很清楚,我的另一個位置。所以現在這對我來說最重要的是在安裝生成過程中爲寫入文件寫什麼。

我得到了另一條線索,如下圖。用於設置前/後構建事件的腳本,但未正確識別。我得到的lib \ $像

複製的樣本/ Y 「$(TARGETDIR)$(項目名).dll文件」 「$(SolutionDir)(項目名).dll文件」

上述聲明或線對我不清楚。我需要寫在我的情況?所以需要一步一步的指導。

這裏是我的項目結構 enter image description here

回答

11

要簡單地回答你的問題的屏幕截圖。

在構建事件中輸入的命令(無論是預先還是後置)與您在命令行框中輸入的命令相同。

在您的例子:

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

副本是實際的DOS複製命令。

/Y是防止確認Promps的常規開關。

「$(TargetDir)$(ProjectName).dll」是要複製的源文件。

「$(SolutionDir)lib \ $(ProjectName).dll」是複製文件的目的地。

你可以參考這裏對批處理文件命令的其他信息:Batch command list

$(十標識符豐)是宏,你可以在Visual Studio中的前/後使用生成事件設計師。

您可以參考MSDN聯機幫助,詳細瞭解宏:MSDN Macros List

你想要的東西提供給您的線不會做,它通常被用來DLL文件複製到其他一些項目中使用的庫文件夾或解決方案。

您發現創建新構建事件的解決方案是正確的。

您只需記下實際上將複製文件的命令即可。

這將是這個樣子:

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

/Q:安靜|不顯示文件被複制

/E:遞歸(複製子文件夾結構和文件)

/I:考慮到目標是一個文件夾,如果它不存在(如果需要的話將創建一個新的文件夾)

+4

不要忘記使用宏按鈕(點擊編輯預編譯或編輯後生成),以便您可以看到MSBuild屬性。非常有幫助的事情是。 –

相關問題