MSBuild Access 属性 在 Target 外声明的组
MSBuild Access Property Group declared in a Target outside
我在访问在目标内声明的 PropertyGroup 时遇到问题。
Target 中的消息正在正确发布版本号。当我尝试发布 VersionNumber 和 VersionInfo 时,我只能看到 VersionInfo 的正确值为 true 但 VersionNumber 显示为空 string.I 希望 VersionNumber 值也在这里发布
请帮忙!
下面是我的代码文件:
<PropertyGroup >
<FileLocation>C:\Dev\version.txt</FileLocation>
<VersionInfo>false</VersionInfo>
<VersionInfo Condition="Exists('C:\Dev\version.txt')">true</VersionInfo>
</PropertyGroup>
<Target Name="ReadFromFile">
<ReadLinesFromFile File="$(FileLocation)" >
<Output PropertyName="VersionNumber"
TaskParameter="Lines"/>
</ReadLinesFromFile>
<Message Text="Inside Target (Version Number) : $(VersionNumber)"/>
</Target>
<ItemDefinitionGroup>
<PreBuildEvent>
<Command>
echo VersionNumber: $(VersionNumber)
echo VersionInfo: $(VersionInfo)
</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
我为我的 problem.Even 找到了一个解决方案,我可以删除整个 Target-ReadfromFile 并且可以读取 属性 组中的文本文件内容 itself.I 使用 属性 函数- System.IO.File::ReadAllText 来实现我的功能。
结果证明是一个简单的解决方案
可以找到有关 属性 函数的更多详细信息 here
我的代码现在如下所示:
<PropertyGroup >
<FileLocation>C:\Dev\version.txt</FileLocation>
<VersionInfo>false</VersionInfo>
<VersionInfo Condition="Exists('C:\Dev\version.txt')">true</VersionInfo>
<VersionDetails>$([System.IO.File]::ReadAllText($(FileLocation)))</VersionDetails>
</PropertyGroup>
现在我可以在项目的任何地方访问 VersionDetails属性
我在访问在目标内声明的 PropertyGroup 时遇到问题。
Target 中的消息正在正确发布版本号。当我尝试发布 VersionNumber 和 VersionInfo 时,我只能看到 VersionInfo 的正确值为 true 但 VersionNumber 显示为空 string.I 希望 VersionNumber 值也在这里发布
请帮忙!
下面是我的代码文件:
<PropertyGroup >
<FileLocation>C:\Dev\version.txt</FileLocation>
<VersionInfo>false</VersionInfo>
<VersionInfo Condition="Exists('C:\Dev\version.txt')">true</VersionInfo>
</PropertyGroup>
<Target Name="ReadFromFile">
<ReadLinesFromFile File="$(FileLocation)" >
<Output PropertyName="VersionNumber"
TaskParameter="Lines"/>
</ReadLinesFromFile>
<Message Text="Inside Target (Version Number) : $(VersionNumber)"/>
</Target>
<ItemDefinitionGroup>
<PreBuildEvent>
<Command>
echo VersionNumber: $(VersionNumber)
echo VersionInfo: $(VersionInfo)
</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
我为我的 problem.Even 找到了一个解决方案,我可以删除整个 Target-ReadfromFile 并且可以读取 属性 组中的文本文件内容 itself.I 使用 属性 函数- System.IO.File::ReadAllText 来实现我的功能。 结果证明是一个简单的解决方案
可以找到有关 属性 函数的更多详细信息 here
我的代码现在如下所示:
<PropertyGroup >
<FileLocation>C:\Dev\version.txt</FileLocation>
<VersionInfo>false</VersionInfo>
<VersionInfo Condition="Exists('C:\Dev\version.txt')">true</VersionInfo>
<VersionDetails>$([System.IO.File]::ReadAllText($(FileLocation)))</VersionDetails>
</PropertyGroup>
现在我可以在项目的任何地方访问 VersionDetails属性