几个月前,我开始开发一个新的 ASP.NET Core RC1 项目,并使用 Visual Studio 2015 进行发布,生成一个文件夹树,无需项目 C# 源代码即可部署(因为它正在将其编译到放入文件夹树的程序集中)。
现在我已经升级了 Visual Studio (只有VS, 不是保留在 1.0.0- 的项目rc1-决赛)以及最新更新(大约 2016 年 5 月 19 日):
“Microsoft .NET Core 1.0.0 RC2 - VS 2015 工具预览 1”、“Microsoft .NET Core 1.0.0 RC2 - SDK 预览 1 (x64)”、“Microsoft ASP.NET 5 RC1 更新 1”(1.0.11123.0)和“Microsoft ASP.NET 5 RC1 更新 1”(1.0.20204.0)
看起来最新 VS2015 更新的新发布功能不再编译源代码,而是将项目 c# 源代码放入发布文件夹树中。
有人可以告诉我如何强制 VS Publish 功能再次编译,而不是将 C# 源代码复制到发布文件夹中吗?
我们从 rc2 工具的“发布”对话框中删除了此选项(“将源文件编译到 NuGet 包中”),因为这不再适用于 dotnet 项目。
为了从 VS 中使用 –no-source 选项发布 rc1 项目,您可以将此目标添加到 pubxml 中(目标需要位于项目内部且属性组外部)。
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<all your existing property group values>
</PropertyGroup>
<Target Name="DnuNoSourcePublish" AfterTargets="GatherAllFilesToPublish" Condition=" '$(CompileSource)' == 'true' ">
<Exec
Condition="Exists('$(PublishOutputPath)') and '$(PublishOutputPath)'!='' "
Command="rmdir /S /Q "$(PublishOutputPath)""
WorkingDirectory="$(MSBuildProjectDirectory)" />
<PropertyGroup>
<DnuCommand>"$(SDKToolingDirectory)\bin\dnu.cmd" publish</DnuCommand>
<RuntimeArgument Condition=" '$(FinalPublishVersion)' != '' " >--runtime $(FinalPublishVersion)</RuntimeArgument>
<WwwRootArgument Condition=" '$(WebRoot)' != '' " >--wwwroot $(WebRoot)</WwwRootArgument>
<WwwRootOutArgument Condition=" '$(WwwRootOut)' != '' " >--wwwroot-out $(WwwRootOut)</WwwRootOutArgument>
<IISCommandArgument Condition =" '$(IISCommand)' != ''">--iis-command $(IISCommand)</IISCommandArgument>
<NoSourceArgument Condition=" '$(CompileSource)' == 'true' ">--no-source</NoSourceArgument>
<NativeArgument Condition="'$(NativeFlag)' == 'true'">--native</NativeArgument>
<IncludeSymbolsArgument Condition=" '$(IncludeSymbolsFlag)' == 'true'">--include-symbols</IncludeSymbolsArgument>
<QuietArgument Condition=" '$(QuietFlag)' == 'true'">--quiet</QuietArgument>
</PropertyGroup>
<Exec
Command="SET PATH=$(ExternalToolsPath);@(DnuPublishEnvironmentVariables)
$(DnuCommand) "$(KPackWorkingDirectory)" --out "$(PublishOutputPathNoTrailingSlash)" --configuration $(PublishConfiguration) $(RuntimeArgument) $(WwwRootArgument) $(WwwRootOutArgument) $(IISCommandArgument) $(NoSourceArgument) $(QuietArgument) $(NativeArgument) $(IncludeSymbolsArgument)"
WorkingDirectory="$(KPackWorkingDirectory)"/>
</Target>
</Project>
确保您的属性组已设置此属性
<CompileSource>true</CompileSource>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)