【问题标题】:Rename project output before being included into Setup project在包含到安装项目之前重命名项目输出
【发布时间】:2010-03-10 21:10:12
【问题描述】:

我有一个构建并放入安装项目以进行部署的 exe。 我想在包含在安装项目之前重命名生成的 exe(到 .scr 文件 - 它是一个屏幕保护程序)。我该怎么做?

我知道我可以在安装后的过程中重命名文件,但我不想这样做,我希望在包含到安装项目之前重命名文件

任何帮助都会非常感谢 我使用的是 Visual Studio 2008,程序是用 C# 编写的

谢谢

【问题讨论】:

    标签: c# visual-studio visual-studio-2008 installation setup-project


    【解决方案1】:

    您可以将重命名命令添加为项目(构建 exe 的项目,而不是安装项目)的构建后事件。

    右键单击项目并转到“属性”。然后在左侧的选项卡中选择“构建事件”。

    在构建后的命令行框中,您可以输入重命名命令。如果您单击编辑按钮,您会发现一些帮助宏对于在命令行中包含构建输出/项目目录很有用。

    【讨论】:

    • 我试过这个但得到一个错误:(我试过有和没有del)错误1命令“del”screensaver.scr”重命名“D:\App Development\ScreenSaver\ScreenSaver\bin \Release\Screen Saver.exe" "screensaver.scr"" 退出,代码为 1。ScreenSaver
    • @Chris:尝试查看输出窗口,您可能会发现更详细的错误消息。
    • 它显示以下内容:存在重复的文件名,或找不到文件。 - 我怎样才能让这个错误静默或覆盖?
    • 将命令改为“move /Y oldfile.exe newfile.svr”。如果新文件已存在,则移动命令上的 /Y 开关将其设置为自动覆盖。由于某种原因,重命名没有这个选项。
    【解决方案2】:

    我在MSDN找到了答案

    您需要在您的 csproj 文件中设置一些 AfterBuild 事件(手动编辑它),这是我的样子

    <Target Name="AfterBuild">
    <Copy SourceFiles="$(TargetDir)\$(TargetName).exe" DestinationFiles="$(ProjectDir)\bin\$(ConfigurationName)\smileyscreensaver.scr" SkipUnchangedFiles="true" />
    </Target>
    

    【讨论】:

    • 至少在 VS2015 中,这似乎不起作用 - 项目的主要输出仍然是 .exe 而不是复制的 .scr 文件。必须手动将输出添加到设置中。
    • 这在 vs 2019 中是否可行
    【解决方案3】:

    VS2005 安装项目中的一个项目有一个 TargetName 属性。 2008 年有吗?它对你有用吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多