MSBuild + Объем имущества

Я определяю свойство в файле.csproj

 <PropertyGroup>
<ProjectGuid>{3099AE33-98E7-4018-B0C3-4C3A37A6D56E}</ProjectGuid>
<OutputType>Exe</OutputType>
<!-- Property for CASI Dev Build location -->
<AppRoot>$(INETROOT)\target\distrib\$(BuildType)\$(BuildArchitecture)\CASI_Dev</AppRoot>
<DeploymentBranch>Dev</DeploymentBranch>

У меня также есть ссылочный проект: скажем

<ItemGroup>
<ProjectReference Include="$(INETROOT)\refproj.csproj">
  <Project>{F73278A5-AB7E-4FFD-8592-F135E7DB06F2}</Project>
  <Name>RemoteProj</Name>
</ProjectReference>

Есть ли какой-нибудь способ доступа к свойству $(DeploymentBranch) или $(AppRoot) в указанном проекте, т.е. в файле refproj.csproj.

Если я попытаюсь получить к ним доступ сейчас, значение будет пустым

1 ответ

Решение

Исходя из того, что я знаю о MsBuild, это невозможно "стандартным" способом. Но вот варианты, которых вы можете достичь: 1) Передайте значения свойств в командной строке MSBuild для построения корневого решения: msbuild mySolution.sln / t: Build /p:Configuration=...;Platform=...;DeploymentBranch=...; AppRoot =...

2) В вашем refproj.csproj вы можете импортировать main.csproj. но имейте в виду "относительность" ваших путей и тот main.csproj может переопределить ваши свойства и цели refproj.csproj.

Смотрите больше информации здесь

Другие вопросы по тегам