У меня проблема с MSBuild 4.0, которая не позволяет правильно определить путь в одном из моих импортированных файлов MSBuild. ProjectOne.csproj в самом начале файла импортирует GenericProject.proj .
GenericProject.proj затем импортирует файл ProjectOne.settings , когда это необходимо, с помощью вызова, структурированного как:
<Import Project="$(MSBuildProjectName).settings" />
Я предполагал, что, когда импорт будет решен, он будет иметь путь, подобный следующему:
/ Корень проекта / Src / ProjectOne / ProjectOne.settings
Но при запуске ProjectOne.csproj через MSBuild я получил путь:
/ Корень проекта / Цели / ProjectOne.settings
Это не имеет смысла, поскольку предполагается, что все пути относительны к главному проекту, в данном случае ProjectOne.csproj .
Так что мне интересно, если кто-то знает, почему это происходит?
Структура папок:
- Project Root
- Src
- ProjectOne
- ProjectOne.csproj
- ProjectOne.settings
- Цели
Я не думаю, что это имеет значение, но на всякий случай я использую windows 7 x64
Редактировать: (1: 45-11 / 7/2010) Мне удалось решить проблему, добавив тег $(MSBuildProjectDirectory)
перед $(MSBuildProjectName)
, но я до сих пор не знаю, почему он не решился правильно с самого начала.