Я пытаюсь использовать пакет расширения msbuild для установки конфигурации нашего приложения при развертывании, Я хочу иметь возможность передать свойство (ENV), которое будет загружать конфигурационный файл определенной среды для использования с детокенизатором и исправления моих конфигураций приложений. Как это:Область действия с использованием расширительного пакета msbuild detokenise
<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/р: Env = Prod
MsBuild знает о моем файле и я иметь доступ к своим свойствам, но когда detokeniser работает я получаю сообщение об ошибке:
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 :
Все работает отлично, если я жесткий код It-Любые идеи, как решить эту проблему. Я думал, что делать какой-нибудь текст замены на MSBuild, прежде чем я выполнить ...
Спасибо за ответ, но тот довольно mcuh, как это работает сейчас и ваш метод обычно работает очень хорошо для меня, кажется, что-то о загрузке файла задачи вызывает проблему. Я могу сообщить об этом свойству и его правильности, но передать его заданию и вернуться к его предварительно обработанной ценности. –
Вы можете частично решить эту проблему, используя свойство CommandLineValues задачи –