Есть ли способ изменить каталог вывода MSBuild на собственное имя проекта? - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь скомпилировать мой машинописный код в javascript. Я хочу объединить это с другим проектом, но поскольку мой основной проект имеет другое имя, я не смогу объединить его, если не найду способ либо вывести свои файлы без имени проекта полностью, либо изменить имя скомпилированного выходного проекта. У меня также есть много зависимостей от разных проектов, имена которых не могут быть изменены. Я хочу знать, возможно ли изменить имена в самом файле csproj или использовать цели для изменения имени проекта выходного каталога.

Я использую файлы .targets, и я уже пытался использовать gulp иtsconfig, но безуспешно.

Файлы:

C: \ ProjectMain \ Project1 \ ts

helloWorld.ts

C: \ ProjectMain \ Project1 \ js>

Текущий вывод:

C: \ ProjectMain \ Project1 \ js \ Project1

helloWorld.js

Требуемый вывод:

C: \ ProjectMain \ Project1 \ js \ Project2

helloWorld. JS

1 Ответ

1 голос
/ 18 октября 2019

Я использую файлы .targets, и я уже пробовал использовать gulp и tsconfig, но безуспешно.

Не знаком с тем, как заставить его работать в tsconfig. Но похоже, что вы используете msbuild и файл назначения для сборки этого проекта, вы можете отредактировать файл проекта, чтобы настроить процесс сборки.

Поскольку мы можем указать пользовательскую цель в .njsprj(файл проекта Node.js), .csproj (файл проекта обычных проектов C #) или xx.targets файл. Вы можете использовать скрипт ниже, чтобы скопировать содержимое C:\ProjectMain\Project1\js\Project1 в C:\ProjectMain\Project1\js\Project2.

<Project...>
...
  <Target Name="CustomPostBuild" AfterTargets="build">
    <ItemGroup>
      <!--Specify which files we will move-->
      <FilesToMove Include="C:\ProjectMain\Project1\js\Project1\*.*"/> 
    </ItemGroup>
    <MakeDir Directories="C:\ProjectMain\Project1\js\Project2" />
    <Move SourceFiles="@(FilesToMove)" DestinationFolder="C:\ProjectMain\Project1\js\Project2"/>
  </Target>
</Project>

Вы можете использовать задания msbuild для настройки своей сборки, копировать задачу , удалить задачу , переместить задачу ... Иэти пути могут быть заменены макросами, такими как $(ProjectDir), $(SolutionDir) ... Если у вас есть файл проекта в пути C:\ProjectMain\Project1\, $(ProjectDir)\ts <=> C:\ProjectMain\Project1\ts.

Порядок сборки: tsc.exe compile xx.ts до xx.js => custom build target

enter image description here

...