8

我的解决方案有两个项目。一个是我的实际项目,另一个是设置项目。

我的实际项目有一个报告文件夹,用于存储我的所有 ssrs 报告。我在安装项目中有一个名为“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 Event 的脚本,但不正确。我有一个样本

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

上面的陈述或行对我来说不清楚。在我的情况下我需要写什么?我需要一个分步指南。

这是我的项目结构的截图

在此处输入图像描述

4

1 回答 1

11

简单回答你的问题:

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

在您的示例中:

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

copy是实际的 DOS 复制命令。

/Y是阻止确认提示的常规开关。

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

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

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

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

有关宏的更多详细信息,您可以参考 MSDN 在线帮助:MSDN 宏列表

提供给您的线路不会做您想做的事。它通常用于将 DLL 文件复制到其他项目或解决方案使用的库文件夹中。

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

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

它看起来像这样:

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

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

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

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

于 2012-10-17T19:02:42.833 回答