c# - 使用 VS2012 中的构建发布项目失败并显示 "Skipping unpublishable project"

标签 c# asp.net visual-studio-2012 msbuild msdeploy

我正在将当前解决方案从 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.

最佳答案

我很高兴你解决了你的问题,但我一直在这里结束我自己的搜索,而且绝对不是 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

关于c# - 使用 VS2012 中的构建发布项目失败并显示 "Skipping unpublishable project",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22914009/

相关文章:

c# - 希腊语的mysql字段可以在 Crystal 报表中显示吗?

c++ - Boost 序列化和文件 IO 非常慢

c# - 代码高尔夫 : C#: Convert ulong to Hex String

c# - 在 Visual Studio 中调试 5 节点群集的 Azure Service Fabric 应用程序

c# - 如何在 ASP.Net 中使用 URL 重写

javascript - SignalR 无法调用客户端监听函数

javascript - ASP.NET MVC 将部分 View 呈现为字符串以使用 JSON 返回

c# - 从网站 URL 获取链接

asp.net - Crystal Report v10.5 工具栏在 Firefox 上不可见,但在 IE 和 Chrome 上可见

c++ - 从 dll 中读取链接器信息