【问题标题】:How to configure post-build events for setup/deployment projects in Visual Studio如何在 Visual Studio 中为安装/部署项目配置构建后事件
【发布时间】:2012-10-04 12:46:10
【问题描述】:

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

我的实际项目有一个报告文件夹,用于存储我的所有 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"

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

这是我的项目结构的截图

【问题讨论】:

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


    【解决方案1】:

    简单回答你的问题:

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

    在你的例子中:

    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 : 如果目标不存在,则认为它是一个文件夹(如果需要,将创建一个新文件夹)

    【讨论】:

    • 不要忘记使用宏按钮(单击编辑预构建或编辑后构建后),这样您就可以看到 MSBuild 属性是什么。非常有帮助。
    • 以防万一它对某人有所帮助,如果您在项目属性对话框中寻找构建后事件选项卡,请知道它在主 属性窗口中,而不是在那对话框。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-25
    • 1970-01-01
    • 2013-09-01
    • 2011-06-10
    • 2016-05-21
    相关资源
    最近更新 更多