相关疑难解决方法(0)

在Visual Studio中发布事件之后

我试图在发布事件后调用简单的任务.当我说"发布"时,我的意思是在Visual Studio中发布,右键单击项目并按"发布...".我在项目文件中包含了(导入的)目标文件,因为我已经在Build事件上测试了它,所以工作正常.我在http://msdn.microsoft.com/en-us/library/ms366724.aspx上发现有AfterPublish事件应该做我需要的事情,但事实并非如此.我不确定这是否应该在Visual Studio中的Publish上触发,有人请澄清这一点.我的问题是如何在Visual Studio中的Publish上触发目标文件中的任何类型的任务?

我在目标文件中尝试了这个:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="AfterPublish">
        <Message Label="Test"></Message>        
        <Warning Label="Test"></Warning>
    </Target>   
</Project>
Run Code Online (Sandbox Code Playgroud)

我正在使用Visual Studio 2010.

编辑:

我实际上正在寻找在Visual Studio中的Publish上执行某些操作的任何方法.我还在考虑添加Build Events,但我不知道如何确定它是否正在发布.

编辑:@Alexey Shcherbak感谢您的快速回复.我在我的MSBuild输出中得到这个:

12/10/2012 12:29:40 AM:        Done executing task "CallTarget".
12/10/2012 12:29:40 AM:        Done building target "PipelinePreDeployCopyAllFilesToOneFolder" in project "PublishTestApp.csproj".
12/10/2012 12:29:40 AM:Done building project "PublishTestApp.csproj".
Deleting existing files...
Publishing folder /...
Publishing folder Account...
Publishing folder bin...
Publishing folder Scripts...
Publishing folder Styles...
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========
========== Publish: …
Run Code Online (Sandbox Code Playgroud)

deployment msbuild publish visual-studio-2010 visual-studio

26
推荐指数
3
解决办法
3万
查看次数

如何使用PowerShell中的发布内部视觉工作室完全相同的功能

我想知道如何从PowerShell以与Visual Studio相同的方式发布.

例如,当您使用MVC项目启动Visual Studio时; 然后右键单击项目并选择"发布"; 出现一个对话框,您可以在再次单击"发布"中填写一些设置.它按预期神奇地推动您的网站.它还会创建一个文件来保存这些设置.projectName.Publish.xml.

该文件是我希望能够以完全相同的方式使用它的原因.有一些设置可以在powershell中进行操作,将应用程序推送到具有不同配置的多个站点.

我查看了"msbuild target:publish",它只生成(从包含.csproj的目录运行):

MSBUILD : error MSB1009: Project file does not exist.
Switch: target:publish 
Run Code Online (Sandbox Code Playgroud)

我试过"msbuild projectfile target:publish",它产生:

MSBUILD : error MSB1008: Only one project can be specified.
Switch: target:build
Run Code Online (Sandbox Code Playgroud)

我还看了几个msdeploy变种.这不可能这么难!?如果您可以在工作室中右键单击,则可以执行该任务.

我开始怀疑这是否需要满月并将鸡头切掉.(我花了很多时间在这上面!)

**编辑:我试过李的建议:

msbuild target:publish Mvc.csproj
Run Code Online (Sandbox Code Playgroud)

哪会产生这个错误:

MSBUILD : error MSB1008: Only one project can be specified.
Switch: Mvc.csproj

For switch syntax, type "MSBuild /help"
Run Code Online (Sandbox Code Playgroud)

**编辑:根据DaveE的建议,我试过:

msbuild target:publish Mvc.csproj
Run Code Online (Sandbox Code Playgroud)

哪会产生这个错误:

MSBUILD : error MSB1009: Project file does not exist.
Switch: target:publish=PassportHealth.PatientSimple.Mvc.csproj
Run Code Online (Sandbox Code Playgroud)

我还回到了"发布"目标(http://msdn.microsoft.com/en-us/library/ms165431.aspx)的文档,这似乎很清楚,语法是:

msbuild …
Run Code Online (Sandbox Code Playgroud)

msbuild powershell visual-studio-2010 msdeploy visual-studio

18
推荐指数
1
解决办法
7503
查看次数

部署时无法找到MSBuild目标PipelinePreDeployCopyAllFilesToOneFolder

从VS2010 RTM部署Web应用程序项目会导致MSBuild中出错.它抱怨无法找到PipelinePreDeployCopyAllFilesToOneFolder目标.

有没有办法进一步诊断这个?

谢谢.

msbuild pipeline visual-studio-2010

11
推荐指数
2
解决办法
1万
查看次数

如果目标失败,请停止msbuild进程

假设我有三个目标A,B和C.C依赖于B.B依赖于A.如果我运行msbuild /t:C mybuildfile.xml,它将按顺序执行目标A,B和C. 如果A中出现任何故障,如何设置以确保C和B不会被执行?

msbuild

6
推荐指数
1
解决办法
3195
查看次数

在文件发布到 FileSystem 后运行 Target

我正在尝试创建发布配置文件,它将所有发布的文件复制到各个文件夹。不幸的是,我读到这是不可能直接通过publishUrl的,建议发布到一个文件夹,从中复制所有文件。我设法编写了复制目标功能,但是目标运行的顺序是错误的。我正在尝试通过 Build > Publish Web 直接从 VisualStudio 2015 运行发布。

这是我的发布配置文件:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>FileSystem</WebPublishMethod>
    <LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish />
    <LaunchSiteAfterPublish>False</LaunchSiteAfterPublish>
    <ExcludeApp_Data>True</ExcludeApp_Data>
    <publishUrl>obj\Package\PackageTemp</publishUrl>
    <DeleteExistingFiles>True</DeleteExistingFiles>
    <ExcludeFilesFromDeployment>Web.config;package.json;packages.config;Typescript\**;DynamicCss\**;gulpfile.js;</ExcludeFilesFromDeployment>
  </PropertyGroup>
  <Import Project="AdditionalResources.targets" />
  <PropertyGroup>
    <CopyAllFilesToSingleFolderForPackageDependsOn>AdditionalResources</CopyAllFilesToSingleFolderForPackageDependsOn>
  </PropertyGroup>
  <ItemGroup>
    <DestLocations Include="D:\PUBLISH_TEST\" />
    <DestLocations Include="D:\PUBLISH_TEST2\" />
  </ItemGroup>
  <Target Name="CopyToDeployFolders" AfterTargets="CopyAllFilesToSingleFolderForPackage" Outputs="%(DestLocations.Identity)">
    <ItemGroup>
      <PublishedFiles Include="obj\Package\PackageTemp\**\*" />
    </ItemGroup>
    <Message Importance="high" Text="FilesToCopy: @(PublishedFiles)" />
    <PropertyGroup>
      <_DeployPathIdentity>%(DestLocations.Identity)</_DeployPathIdentity>
    </PropertyGroup>
    <Copy SourceFiles="@(PublishedFiles)" DestinationFiles="@(PublishedFiles->'$(_DeployPathIdentity)%(RecursiveDir)%(Filename)%(Extension)')" />
  </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

它的运行顺序如下:

Build
AdditionalResources
CopyToDeployFolders
Publish folder
Run Code Online (Sandbox Code Playgroud)

这是有问题的,因为我的临时文件夹尚未创建/发布。我试图让我的 CopyToDeployFolders 目标覆盖 AfterPublish 并尝试使用各种不同的 AfterTarget,但它们都不起作用 - 有时我的目标没有执行或在发布文件夹之前仍在运行。

我试图通过查看 …

msbuild publish visual-studio-2015

3
推荐指数
1
解决办法
2032
查看次数