У меня есть .csproj
файл с несколькими целями.Он начинается так:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFrameworks>net35;net40;net45;netcoreapp2.0;netstandard2.0</TargetFrameworks>
...
Это проект на C #, использующий Selenium, и ему необходимо автоматически обновлять файл javascript с помощью NPM.Каждый такой файл javascript должен быть помечен как Embedded Resource
.
. Я пробовал несколько способов запустить NPM перед сборкой.Я попытался написать командный файл, который запускается перед сборкой, я попытался установить расширение Nuget для обновления NPM и даже попытался добавить событие предварительной сборки, которое обновляет файлы.
Проблема в том, что это происходит для каждой целихотя мне нужно, чтобы это произошло только один раз, до начала сборки.
Я искал все соответствующие документы MSBuild, которые Microsoft предоставляет для поиска решения, но тщетно.
В настоящее время я обновляю сценарии какэто:
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
<Exec Command="cd $(ProjectDir)Properties\NodeResources
call npm update && copy node_modules\mycompany\firstpackage\dist ..\Resources && copy node_modules\mycompany\secondpackage\dist ..\Resources" />
</Target>
<ItemGroup>
<None Remove="Properties\Resources\script1.js" />
<None Remove="Properties\Resources\script2.js" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Properties\Resources\script1.js" />
<EmbeddedResource Include="Properties\Resources\script2.js" />
</ItemGroup>
У кого-нибудь есть идеи, как это сделать?