Я пытаюсь использовать пакет расширений 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 перед выполнением...