相关疑难解决方法(0)

在Visual Studio 2012中使用MSBuild PublishProfile时,MSDeploy跳过规则

我正在尝试使用WebDeploy使用自定义MSDeploy跳过规则和Visual Studio 2012中保存的发布配置文件来发布网站.

我从命令行使用发布配置文件,但跳过删除文件夹的跳过规则不起作用.

我的ErrorLog网络应用程序中有一个子文件夹,web.config里面有一个文件来设置正确的文件夹权限.没有任何跳过规则,ErrorLog文件夹和web.config文件将正常发布,但服务器上文件夹中的所有现有错误日志文件将在发布时删除.


错误 <SkipAction>Delete</SkipAction>

当我向我的wpp.targets文件添加自定义跳过规则时,跳过规则不再接受该<SkipAction>元素的值.如果我设置<SkipAction>Delete</SkipAction>,我收到以下错误:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(4377,5): error : Web deployment task failed. (Unrecognized skip directive 'skipaction'. Must be one of the following: "objectName," "keyAttribute," "absolutePath," "xPath," "attributes.<name>.") [C:\inetpub\wwwroot\My.Website\My.Website\My.Website.csproj]
Run Code Online (Sandbox Code Playgroud)

如果我只是省略该<SkipAction>元素,ErrorLog则在正常发布时删除该文件夹.

如果我<SkipAction></SkipAction>再次设置,ErrorLog则在发布时删除该文件夹.

如果我设置<KeyAttribute>Delete</KeyAttribute>,然后ErrorLogweb.config文件通常刊载.

我的理解是,为了使用自定义跳过规则,您需要从命令行调用MSBuild而不是从VS 2012中发布.但是,我仍然想使用我保存的发布配置文件,我知道现在可以使用VS 2012.


我的MSBuild命令行:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe My.Website.sln /p:Configuration=Release;DeployOnBuild=true;PublishProfile="Test Server - Web Deploy"
Run Code Online (Sandbox Code Playgroud)

My.Website.wpp.targets:

<?xml version="1.0" encoding="utf-8" ?> …
Run Code Online (Sandbox Code Playgroud)

msbuild msdeploy visual-studio webdeploy visual-studio-2012

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

避免删除Azure Cloud Service发布上的文件

我将我的ASP.NET MVC应用程序托管为Azure云服务.

在新部署后,我在删除用户上传的图片时遇到问题.

上传的图片将保存到自定义特殊文件夹中 WebProject/UserFiles/MedicalCenterImages

下面我提供了我的项目文件夹结构.

项目文件夹结构

我发现并调查了几个与我相关的问题

并且弄清楚,我应该在.csproj文件上添加一个SkipDelete规则.

<Target Name="AddCustomSkipRules">
<Message Text="Adding Custom Skip Rules" />
<ItemGroup>
  <MsDeploySkipRules Include="SkipUserFilesFolder">
    <SkipAction>Delete</SkipAction>
    <ObjectName>filePath</ObjectName>
    <AbsolutePath>UserFiles</AbsolutePath>
  </MsDeploySkipRules>
</ItemGroup>
</Target>
Run Code Online (Sandbox Code Playgroud)

但我不完全明白我应该编辑哪个文件?(MaxPatient.Web.csproj或MaxPatientCloudService.ccproj或任何其他文件)

我总是发布我的MaxPatientCloudService项目.

我将不胜感激任何帮助.

谢谢 :)

.net c# asp.net azure azure-cloud-services

5
推荐指数
1
解决办法
1338
查看次数