我遇到的问题是,当我通过MSBuild(4.0)发布ClickOnce应用程序时,不会在app.publish文件夹中创建publish.htm(或default.htm).
通过Visual Studio发布时,它会被创建...
在我的.csproj文件中,我设置了以下属性,但它仍然无效...
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>default.htm</WebPage>
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
谢谢
我有一个自定义的 MSBuild 目标,部分代码片段如下..
<Target Name="PublishHtm">
<PropertyGroup>
<PublishHtmTemplateContents>$([System.IO.File]::ReadAllText($(PublishHtmTemplatePath)))</PublishHtmTemplateContents>
<PublishHtm>$(PublishHtmTemplateContents)</PublishHtm>
</PropertyGroup>
<WriteLinesToFile Lines="$(PublishHtm)" File="$(PublishDir)\publish.htm" Overwrite="true"/>
</Target>
Run Code Online (Sandbox Code Playgroud)
这是对此解决方案的一次返工尝试,因为我试图将此模板隔离到外部文件。该模板包含 MSBuild 属性引用,例如$(ApplicationName). 当完全按照链接解决方案中的描述执行此操作时,它工作得很好,但是当将模板作为字符串加载时,这些属性表达式在到达文件时都不会被评估。
<SPAN CLASS="BannerTextApplication">$(ApplicationName)</SPAN>
Run Code Online (Sandbox Code Playgroud)
是否有一个 MSBuild 表达式/函数可以用来在给定调用目标的上下文的情况下重新评估字符串?
顺便说一句,我不想使用查找/替换或正则表达式替换来解决问题,而是坚持使用 MSBuild 表达式引擎。
使用 Visual Studio 2012 和 .NET Framework 4.5。