Как добавить существующий элемент в проект Visual Studio, скопировать его в вывод, но изменить его исходное имя?

Я добавил файл справки chm в качестве ссылки на проект приложения, но его имя не годится для публикации в открытом доступе ("Compiled help.chm"). К сожалению, другие люди поддерживают его в другом подмодуле git, и его имя является автоматическим выводом их построителя справки.

После добавления файла в качестве ссылки нет возможности изменить имя файла. Есть ли функция csproj xml, позволяющая пользователю переименовывать ссылку на файл, возможно, без нарушения работы установщиков WiX в зависимости от этого и других нежелательных последствий?


person too    schedule 28.01.2015    source источник
comment
если путь к файлу справки жестко запрограммирован в файле продукта WiX, я думаю, вы сломаете его, изменив имя файла (если вы не можете изменить проект установщика wix).   -  person mcy    schedule 28.01.2015


Ответы (2)


Мне было немного любопытно об этом, поэтому я попробовал сам, и я думаю, что смог получить что-то, что сработает для вас:

  1. Если у вас уже есть файл в вашем проекте в виде ссылки, перейдите к 2; o/w, перетащите файл на свой проект в Visual Studio и, удерживая нажатыми клавиши Ctrl и Shift, перетащите файл в свой проект, создав ссылку.
  2. Закрыть решение и проект
  3. С помощью блокнота или любого другого текстового редактора отредактируйте файл .csproj, а затем найдите свою логическую ссылку, выполнив поиск имени файла, который вы только что добавили.
  4. Отредактируйте узел ссылки следующим образом:
<ItemGroup>
    <None Include="....\OtherTeamOutputFolder\Compiled help.chm">
        <Link>Super Cool Production Product Name.chm</Link>
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
</ItemGroup>
  1. Создайте свой проект; засвидетельствовать славу.
person John Castleman    schedule 28.01.2015
comment
Прошу прощения, если это нарушает вашу реализацию WiX, но в наших проектах мы вообще обходили файл .wixproj и писали все пользовательские сценарии, так что в такой ситуации это сработало бы. Тем не менее, я полагаю, что будет одна из двух возможностей: 1. WiX просто справится с этим (т. е. ему повезет, и он знает полный синтаксис ссылок на файлы проекта) 2. у него будет какой-то способ указывать псевдонимы (кажется, мы даже использовали это в некоторых моих проектах) - person John Castleman; 28.01.2015
comment
Это действительно работает! Он не отображает обновленное имя в обозревателе решений, но хак есть хак... Я изменил WiX на захват *.chm, поэтому с ним проблем нет. Спасибо. - person too; 28.01.2015
comment
@faisalhafeez и что? - person John Castleman; 28.04.2016
comment
@JohnCastleman Я пытаюсь использовать файл cs. Знаете ли вы какое-либо решение для этого? - person fhnaseer; 29.04.2016

Если вы управляете проектом WiX, вы можете указать имя файла в элементе file:

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

Однако вам следует учитывать новое имя при доступе к переименованным ресурсам как из исполняемых файлов/библиотек классов, так и из других материалов.

person mcy    schedule 28.01.2015