如何在Visual Studio中为安装/部署项目配置生成后事件

时间:2012-10-04 12:46:10

标签: visual-studio-2010 visual-studio setup-deployment pre-build-event

我的解决方案有两个项目。一个是我的实际项目,另一个是安装项目。我的实际项目有一个报告文件夹,我存储了我的所有ssrs report.i在安装项目中有一个名为“SSRS_Repor”的文件夹。现在我想要当我将批量生成然后设置为我的项目重新生成然后我想将我的实际项目的报告文件夹中的所有文件复制到我的安装项目中的SSRS_Repor。如果我可以做到这种自动化将文件从一个位置复制到我的安装项目的另一个文件夹,那么我可以摆脱手动复制rdls文件。我很难通过设置/部署项目来实现这一点。我搜索谷歌这个细节一步一步的指示,但没有很好的链接。所以请指导我如何做到这一点。

我也把它发布到另一个论坛,有人在下面告诉我

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

所以没关系,但我需要写什么来将文件从一个位置复制到另一个位置,这对我来说并不清楚。所以现在这对我来说最重要的是在设置生成期间写入什么来复制文件。

我得到了另一条线索,如下图所示。用于设置Pre / Post Build事件但未正确识别的脚本。我得到了像

这样的样本

复制/ Y“$(TargetDir)$(ProjectName).dll”“$(SolutionDir)lib \ $(ProjectName).dll”

以上陈述或行不为我所知。我需要写什么?所以需要循序渐进的指南。

这是我的项目结构的屏幕截图 enter image description here

1 个答案:

答案 0 :(得分:12)

简单回答你的问题。

您在构建事件中输入的命令(无论是前置还是后置)与在命令行框中输入的命令相同。

在你的例子中:

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

copy 是实际的DOS复制命令。

/ Y 是一个常规开关,可以阻止确认提示。

“$(TargetDir)$(ProjectName).dll”是要复制的源文件。

“$(SolutionDir)lib \ $(ProjectName).dll”是复制文件的目的地。

您可以在此处参考有关批处理文件命令的其他信息:Batch command list

$({Identifier})是您可以在Visual Studio Pre / Post Build事件设计器中使用的宏。

有关宏的更多详细信息,请参阅MSDN联机帮助:MSDN Macros List

提供给您的行不会执行您想要的操作,它通常用于将DLL复制到某些其他项目或解决方案使用的库文件夹中。

您发现创建新构建事件的解决方案是正确的。

您要做的就是写下实际复制文件的命令。

它看起来像这样:

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

/ Q:安静|不显示正在复制的文件

/ E:递归(复制子文件夹结构和文件)

/ I:考虑目标是一个文件夹(如果它还不存在)(如果需要,将创建一个新文件夹)