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

Tho*_*mas 7 visual-studio-2010 setup-deployment visual-studio 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
Run Code Online (Sandbox Code Playgroud)

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

我得到了另一个线索,如下面的一个.用于设置Pre/Post Build事件但未正确识别的脚本.我得到了一个样本

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

上述陈述或行不为我所知.我需要写什么?所以需要一步一步的指导.

这是我的项目结构的屏幕截图 在此输入图像描述

Yan*_*net 12

简单地回答你的问题.

您在构建事件(前置或后置)中输入的命令与在命令行框中输入的命令相同.

在你的例子中:

copy /Y "$(TargetDir)$(ProjectName).dll" "$(SolutionDir)lib\$(ProjectName).dll"
Run Code Online (Sandbox Code Playgroud)

copy是实际的DOS复制命令.

/ Y是常规开关,可防止确认提示.

"$(TargetDir)$(ProjectName).dll"是要复制的源文件.

"$(SolutionDir)lib\$(ProjectName).dll"是复制文件的目标位置.

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

$({}标识符)是宏,你可以在Visual Studio中的前/后使用生成事件设计师.

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

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

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

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

它看起来像这样:

XCOPY "$(SolutionDir)TestProject\Reports\*.*" "$(SolutionDir)TestSetup1\SSRS_Repor" /Q /E /I
Run Code Online (Sandbox Code Playgroud)

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

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

/ I:如果目标不存在,则认为该目标是一个文件夹(如果需要,将创建一个新文件夹)

  • 不要忘记使用"宏"按钮(单击"编辑预构建"或"编辑后构建"),以便可以查看MSBuild属性.非常有帮助的事情. (4认同)