Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

MsBuild - перенести в другую папку?

881  
Murr патриот29.10.23 13:39
Murr
29.10.23 13:39 

Дано:

- Сервис работающий под IIS

- MsBuild из Студии 2022


Требуется - запустить MsBuild из-под IIS жестко ограничив доступ к ресурсам системы.


Решение

- создаем IIS-юзера с правами на чтение и выполнение

- копируем MsBuild в отдельную папочку и даем на нее права созданному юзеру

Дальше утыкаемся в то, что для MsBuild требуются дополнительные либы... эээ... в мелкомягком проекте ссылок на них вроде нет...

Ну да ладно - что запрашивает - копируем в ту же папочку.

Наконец перестает спрашивать... но солюшник - не компилит - отваливается

C:\Users\Murr>C:\Projects\RunFromIIS\Apps\msbuild.exe C:\Projects\Dummy\AppendXML\appendxml.sln
Microsoft (R) Build Engine version 17.1.0+ae57d105c for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Building the projects in this solution one at a time. To enable parallel build, please add the "-m" switch.
Build started 29/10/23 12:20:34.
C:\Projects\Dummy\AppendXML\appendxml.sln.metaproj(2,10): error MSB4132: The tools version "Current" is unrecognized. Available tools versions are "2.0", "3.5"
, "4.0".

Build FAILED.

C:\Projects\Dummy\AppendXML\appendxml.sln.metaproj(2,10): error MSB4132: The tools version "Current" is unrecognized. Available tools versions are "2.0", "3.
5", "4.0".

0 Warning(s)
1 Error(s)

Time Elapsed 00:00:00.52


Видимо не все дллки или их конфиги на месте


Вопросик такой - Чем сейчас удобнее всего получить список дллок которые нужно запихать в папку с MsBuild чтобы гарантировать его полную работоспособность? Ээээ... лишних - не надо - только необходимый минимум из тех что не зашарены...

#1 
AlexNek патриот29.10.23 13:49
AlexNek
NEW 29.10.23 13:49 
в ответ Murr 29.10.23 13:39


Может это попробовать?

https://learn.microsoft.com/en-us/sysinternals/downloads/p...

#2 
Murr патриот29.10.23 14:17
Murr
NEW 29.10.23 14:17 
в ответ AlexNek 29.10.23 13:49

Нее, там при запуске только моргает что-то и закрывается окошко...


Блин, полностью скопировал всю папку с MsBuild... вроде большая часть отработала... по крайней мере написала что ребуилд не нужен... и все же - завалилась...


Вот думаю - есть ли смысл посмотреть что там мелкомягкие как станалоне предлагают?


Опсс... довыпендрючивался... при запуске ГитХабДесктоп имею сообщение что он не может получить доступ к менеджеру виртуальной памяти....

#3 
AlexNek патриот29.10.23 14:25
AlexNek
NEW 29.10.23 14:25 
в ответ Murr 29.10.23 14:17

А зачем всё копировать? Отчего не поручить это проге, которая будет вызывать билд

И что свой pipeline делаем?

#4 
Murr патриот29.10.23 15:26
Murr
NEW 29.10.23 15:26 
в ответ AlexNek 29.10.23 14:25

А зачем всё копировать?

-----

Ну вроде как выше спрашивал как взять минимально необходимое.

Пока не выверено что необходимо - беру все.


Отчего не поручить это проге, которая будет вызывать билд

-----

IIS будет вызывать - там заморочек с вызовом и так с горбом.

А оставлять по месту в купе с полной студией, при условии что запускать будет внешний юзер - да ну его нафиг... мне бы голый MsBuild.


И что свой pipeline делаем?

------

Не, по проще...

#5 
AlexNek патриот29.10.23 15:55
AlexNek
NEW 29.10.23 15:55 
в ответ Murr 29.10.23 15:26
IIS будет вызывать - там заморочек с вызовом и так с горбом.

ну если можешь вызывать билд с его параметрами, то в чем проблема с другой прогой?


при условии что запускать будет внешний юзер - да ну его нафиг

Не въезжаю... проге передаем только то что нужно бильдить. Билду передавать много больше.

Как вариант с меньшим количеством возможностей может быть хуже того что с большим?

#6 
Murr патриот29.10.23 17:04
Murr
NEW 29.10.23 17:04 
в ответ AlexNek 29.10.23 15:55

в чем проблема с другой прогой?

------

В том, что ее тоже могут попытаться выполнить... включая произвольный свеженький скомпилированный код.


Как вариант с меньшим количеством возможностей может быть хуже того что с большим?

-----

Когда в процессе можно будет добавить.

#7 
AlexNek патриот29.10.23 17:53
AlexNek
NEW 29.10.23 17:53 
в ответ Murr 29.10.23 17:04
включая произвольный свеженький скомпилированный код.

Что то я опять не понимаю. Что мне помешает сделать тоже самое в варианте с мсбилдом?

#8 
Murr патриот29.10.23 18:43
Murr
NEW 29.10.23 18:43 
в ответ AlexNek 29.10.23 17:53

А там ожидается ограничение на то что можно выполнять и ничего другого исполняемого рядом быть не должно.

Потому компилированное складывается туда, куда никто не знает и куда нет путей.

#9 
Murr патриот29.10.23 21:35
Murr
NEW 29.10.23 21:35 
в ответ Murr 29.10.23 18:43

Ничего не понимаю


1.

"C:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Current\Bin\msbuild.exe" C:\Projects\Dummy\AppendXML\appendxml.sln

2.

C:\Projects\RunFromIIS\Current\Bin\msbuild.exe C:\Projects\Dummy\AppendXML\appendxml.sln

1. стандартное положение MsBuild после инсталляции Студии

2. копия папки C:\Program Files\Microsoft Visual Studio\2022\Community\Msbuild\Current - т.е. MsBuild сам по себе


Как видно - обрабатывается один и тот же солюшник (с двумя проектами внутри)

В случае 1. - все стандартно отрабатывает, ошибок нет.

Done Building Project "C:\Projects\Dummy\AppendXML.Tests\AppendXML.Tests\AppendXML.Tests.csproj" (default targets).

Done Building Project "C:\Projects\Dummy\AppendXML\appendxml.sln" (default targets).


Build succeeded.
0 Warning(s)
0 Error(s)


В случае 2.

Project "C:\Projects\Dummy\AppendXML\appendxml.sln" (1) is building "C:\Projects\Dummy\AppendXML.Tests\AppendXML.Tests\AppendXML.Tests.csproj" (3) on node 1 (default targets).
C:\Projects\RunFromIIS\Apps\Bin\Microsoft.Common.CurrentVersion.targets(1815,5): error MSB4036: The "GetReferenceNearestTargetFrameworkTask" task was not found

. Check the following:
1.) The name of the task in the project file is the same as the name of the task class.
2.) The task class is "public" and implements the Microsoft.Build.Framework.ITask interface.
3.) The task is correctly declared with <UsingTask> in the project file, or in the *.tasks files located in the "C:\Projects\RunFromIIS\Current\Bin\" directory. [C:\Projects\Dummy\AppendXML.Tests\AppendXML.Tests\AppendXML.Tests.csproj]

Done Building Project "C:\Projects\Dummy\AppendXML.Tests\AppendXML.Tests\AppendXML.Tests.csproj" (default targets) -- FAILED.

Done Building Project "C:\Projects\Dummy\AppendXML\appendxml.sln" (default targets) -- FAILED.


Видимо где-то в таргетсах некорректно заданы пути. хммм Долбаки мелкомягкие...

Все перекапывать и править? Нее, ну его нафиг... надо лепить свои обкладки... тем более что задачи у меня несколько другие...

Хотя... блин... Я же не хочу писать код - хочу чтобы работал MsBuild, в том числе и на компиляции...

#10