Utworzono szablon projektu zawierający csproj, który zawiera Import wskazujący na plik projektu, w którym wymienię wszystkie lokalizacje projektów stron trzecich. Zawsze używam tego szablonu projektu do tworzenia projektów w tym samym katalogu względnym.Jak użyć względnego importu w szablonie csproj?
<?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>
Plik csproj działa poprawnie w Visual Studio i podczas uruchamiania msbuild z wiersza poleceń. Kiedy próbuję utworzyć projekt przy użyciu szablonu projektu pojawia się następujący błąd:
C:\Users...\AppData\Local\Temp\534cylld.o0p\Temp\MyModule.csproj(3,3): The imported project "C:\Users...\AppData\Local\3rdParty\ThirdParty.targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.
Wydaje się, że Visual Studio próbuje otworzyć projekt w tymczasowej lokalizacji pierwszy. Próbowałem już dodać $ (MSBuildProjectDirectory) do lokalizacji importu mając nadzieję, że może zmusić go do użycia lokalizacji, którą zamierzałem, ale to też nie zadziałało.
Wszelkie sugestie?
Mam dokładnie ten sam problem, z tym że zaimportowany plik jest używany do wykonania niestandardowego zadania kompilacji. Potrzebuję tej ścieżki, aby była relatywna, ponieważ jest względna względem hierarchii folderów sterujących źródłami. – madd0
@Christo: Czy możesz podać pełną pah do katalogu, w którym z uruchomionej kompilacji z wiersza poleceń? – sll