Как мне использовать относительный импорт в шаблоне csproj?

Я создал шаблон проекта, который содержит csproj, который содержит импорт, указывающий на файл проекта, в котором я перечисляю все расположения сторонних проектов. Я' m всегда использует этот шаблон проекта для создания проектов в одном относительном каталоге.

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="../../../3rdParty/ThirdParty.targets" />
  ...
  <ItemGroup>
    <Reference Include="Library, Version=$(LibraryVersion), Culture=neutral, PublicKeyToken=$(LibraryPublicKeyToken), processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>$(LibraryDir)LibraryDll.dll</HintPath>
    </Reference>
  </ItemGroup>
  ...
</Project>

Файл csproj правильно работает в Visual Studio и при запуске msbuild из командной строки. Когда я пытаюсь создать проект с использованием шаблона проекта, я получаю следующую ошибку:

C: \ Users ... \ AppData \ Local \ Temp \ 534cylld.o0p \ Temp \ MyModule.csproj (3,3): импортированный проект «C: \ Users ... \ AppData \ Local \ 3rdParty \ ThirdParty.targets» не найден. Убедитесь, что путь в объявлении правильный и что файл существует на диске.

Похоже, Visual Studio сначала пытается открыть проект во временном расположении. Когда я пытаюсь создать проект с использованием шаблона проекта, я получаю следующую ошибку:

C: \ Users ... \ AppData \ Local \ Temp \ 534cylld.o0p \ Temp \ MyModule.csproj (3,3): импортированный проект "C: \ Users ... \ AppData \ Local \ 3rdParty \ ThirdParty.targets" не найден. Убедитесь, что путь в объявлении правильный и что файл существует на диске.

Похоже, Visual Studio сначала пытается открыть проект во временном расположении. Когда я пытаюсь создать проект с использованием шаблона проекта, я получаю следующую ошибку:

C: \ Users ... \ AppData \ Local \ Temp \ 534cylld.o0p \ Temp \ MyModule.csproj (3,3): импортированный проект "C: \ Users ... \ AppData \ Local \ 3rdParty \ ThirdParty.targets" не найден. Убедитесь, что путь в объявлении правильный и что файл существует на диске.

Похоже, Visual Studio сначала пытается открыть проект во временном расположении. Я пробовал добавить $ (MSBuildProjectDirectory) к месту импорта, надеясь, что это может заставить его использовать то место, которое я планировал, но это тоже не сработало.

Есть предложения?

5
задан Anthony Mastrean 21 February 2012 в 18:45
поделиться