Как условно применить элементы `` в файле `csproj`?C#

Место общения программистов C#
Ответить
Anonymous
 Как условно применить элементы `` в файле `csproj`?

Сообщение Anonymous »

Недавно я обнаружил, что при использовании msbuild с флагом /p:RestorePackagesPath теги внутри каждого файла csproj имеют приоритет. см. здесь.
В основном, при выполнении следующей команды msbuild:

Код: Выделить всё

MSBuild.exe "C:\ProgramData\SampleProject\SampleProject.sln" /p:RestorePackagesPath="C:\NuGetPackages"
msbuild НЕ будет искать мои пакеты NuGet внутри указанной папки C:\NuGetPackages для с . Итак, если в моем файле csproj есть следующая запись:

Код: Выделить всё

..\packages\EntityFramework.6.3.0\lib\net45\EntityFramework.dll

будет искать запись NuGet EntityFramework.6.3.0 в папке ..\packages\, а не в моей папке C:\NuGetPackages, которую я указываю в командной строке.
Я подумал, что придумаю способ указать условное игнорирование записей и иметь возможность делать это в командной строке. Для этого я выполняю следующую команду:

Код: Выделить всё

MSBuild.exe "C:\ProgramData\SampleProject\SampleProject.sln" /p:RestorePackagesPath="C:\NuGetPackages" /p:RemoveHintPathsFlag=true
и чтобы это работало, я включаю в свой файл csproj следующее: Выше в первой части я сообщаю файлу csproj, что значение по умолчанию для RemoveHintPathsFlag равно false, затем я включаю условный , который должен запускаться ДО ResolveTargets (я также пробовал запускать ПОСЛЕ ResolveTargets, но это тоже не сработало) и основан на значении, которое я указываю в своем msbuild, в частности /p:RemoveHintPathsFlag = true. Однако это не работает, все значения по-прежнему применяются. Кто-нибудь понимает, почему?
Кроме того, поскольку я не могу заставить вышеизложенное работать, я решил попробовать метод грубой силы, добавляя условия в следующим образом:

Код: Выделить всё

..\packages\EntityFramework.6.3.0\lib\net45\EntityFramework.dll

и вызов msbuild с параметром /p:RemoveHintPathsFlag=true. К моему удивлению, это тоже не сработало.

Подробнее здесь: https://stackoverflow.com/questions/791 ... sproj-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»