如何将现有项目添加到 Visual Studio 项目,复制到输出但更改其原始名称?

How to add existing item to Visual Studio project, copy to output but change it's original name?

我添加了一个 chm 帮助文件作为 link 到应用程序的项目,但它的文件名不适合发布到 public ("Compiled help.chm")。不幸的是,它由其他人在不同的 git 子模块中维护,它的名称是他们的帮助构建器的自动输出。

将文件添加为 link 后,没有更改文件名的选项。是否有 csproj xml 功能允许用户重命名文件 link,可能不会破坏依赖它的 WiX 安装程序和其他不良后果?

如果您控制 WiX 项目,您可以在 file 元素中指定文件名:

<Component…>
  <File Id=”FILE_MyProgramDir_SomeAssemblyDLL”
    Name=”SomeNewNameForAssembly.dll”
    Source=”SomeAssembly.dll”
    KeyPath=”yes” />
</Component>

但是,在从 executable/class 库和其他内容访问重命名的资源时,您应该考虑新名称。

我对这个有点好奇,所以我自己试了一下,我想我能找到适合你的东西:

  1. 如果您的项目中已有该文件 link,请跳至 2; o/w,将文件拖到 Visual Studio 中的项目上,然后 - 同时按住 Ctrl 和 Shift - 将文件拖放到项目上,创建一个 link.
  2. 关闭解决方案和项目
  3. 使用记事本或其他文本编辑器,编辑 .csproj 文件,然后通过查找您刚添加的文件名找到您的逻辑 link。
  4. 编辑link节点如下:
<ItemGroup>
    <None Include="....\OtherTeamOutputFolder\Compiled help.chm">
        <Link>Super Cool Production Product Name.chm</Link>
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
</ItemGroup>
  1. 建立你的项目;见证荣耀。