Я пытаюсь использовать пакет расширений msbuild для исправления конфигурации нашего приложения при развертывании,
я хочу иметь возможность передать свойство (ENV), которое будет загружать мой конфигурационный файл для конкретной среды для использования с детокенизатором, и исправить настройки моего приложения.
Как это:
<UsingTask TaskName="MSBuild.ExtensionPack.FileSystem.Detokenise"
AssemblyFile=".\Tools\MSBuild Extension Pack 4.0.3.0\MSBuild.ExtensionPack.dll"/>
<Import Project=".\Environments\$(Env).properties"/>
<Target Name="Build" >
<ItemGroup>
<SourceTemplates Include=".\Templates\**\*.*"/>
</ItemGroup>
<RemoveDir Directories=".\Temp"/>
<MakeDir Directories=".\Temp"/>
<Message Text="@(SourceTemplates)"/>
<Copy SourceFiles="@(SourceTemplates)"
DestinationFolder=".\Temp\%(RecursiveDir)" />
<ItemGroup>
<TargetTemplates Include=".\Temp\**\*.*"/>
</ItemGroup>
<MSBuild.ExtensionPack.FileSystem.Detokenise
TaskAction="Detokenise"
TargetFiles="@(TargetTemplates)"/>
</Target>
Так я называю это, используя
msbuild Detokenise.msbuild / p: Env = Prod
Msbuild знает о моем файле и у меня есть доступ к его свойствам, но когда запускается детокенизатор, я получаю сообщение об ошибке:
Detokenise Task Execution Completed [15:07:50]
C:\Source\1.2\Build\Detokenise.msbuild(27,3):
error : InvalidProjectFileException: The imported project "C:\Source\1.2\Build\Environments\.properties" was not found.
Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
C:\Source\1.2\Build\Detokenise.msbuild\r
C:\Source\1.2\Build\Detokenise.msbuild(27,3): error :
Все работает нормально, если я жестко закодирую
Есть идеи как это решить. Я думал о замене текста в msbuild перед тем, как выполнить ...