我正在将当前的解决方案从VS2010迁移到VS2012,因为不支持web部署项目,所以我正在尝试在项目上进行“发布”功能。
我的要求是在运行构建时在项目上运行“发布”。这是一个".csproj“与发布方法”文件系统“,也在”发布设置“选项卡上,我有”发布过程中的预编译“和”将所有输出合并到单个程序集“。
我可以通过右键单击项目并选择“发布”来手动运行发布,它提供了所需的单个程序集并将其复制到正确的位置,我只需要它在构建时运行。
我试着跟着做,但没有用。
向.csproj文件中添加一行
<DeployOnBuild>true</DeployOnBuild>
尝试在.csproj中添加以下行
<FilesToIncludeForPublish>OnlyFilesToRunTheApp</FilesToIncludeForPublish>
<DeployOnBuild>true</DeployOnBuild>
<DeployTarget>Package</DeployTarget>
<PackageAsSingleFile>true</PackageAsSingleFile>
命令行
MSBuild C:\MyProj.csproj /p:DeployOnBuild=true /p:PublishProfile=WebDeploy /p:CreatePackageOnPublish=True /p:VisualStudioVersion=11.0
上面的命令导致
Build started 07/04/2014 14:01:05.
Project "C:\MyProj.csproj" on node 1 (default targets).
Build:
Running Publish
_DeploymentUnpublishable:
Skipping unpublishable project.
Done Building Project "C:\MyProj.csproj" (default targets).
Build succeeded.
发布于 2014-04-23 08:51:30
令我惊讶的是,结果是McAfee antivirus在这里搞砸了“发布”,我做得很好,在关闭McAfee时一切都很好,反病毒阻止了aspnet_compiler.exe预编译站点,结果是预编译和随后的合并步骤(合并all到单个程序集)失败了,希望没有人会经历同样的痛苦才能找到答案。
发布于 2015-10-15 00:55:05
我很高兴你解决了你的问题,但我一直在这里用我自己的搜索,它肯定不是McAfee (或任何杀毒软件)在我的方式。因此,对于其他在这里结束的人来说,以下是对我最终起作用的方法:
我意识到我是在执行/t:Publish
,而不是在命令行上执行/t:Package
。跳过“跳过不可发布的项目”步骤的切换。
最后的命令行应该如下所示(为可读性格式化):
MSBuild C:\MyProj.csproj
/p:DeployOnBuild=true
/p:PublishProfile=WebDeploy
/p:CreatePackageOnPublish=True
/p:VisualStudioVersion=11.0
/p:OutputPath="bin\\"
/t:Package
发布于 2016-04-21 20:49:49
我也遇到了同样的问题,原因是我的.csproj中的这一行:
<OutputType>WinExe</OutputType>
我将其更改为与Microsoft.Common.targets中的规则进行区分大小写的匹配:
<OutputType>winexe</OutputType>
我成功了!
https://stackoverflow.com/questions/22914009
复制相似问题