ExcludeFilesFromDeployment无法在Visual Studio 2013中发布Web

时间:2014-10-31 21:51:23

标签: visual-studio-2013 msdeploy webdeploy

我在Visual Studio 2013中有一个相当简单的MVC 5项目。我已成功通过Web Deploy设置发布到服务器。我希望从部署中排除某个文件,而不必在每次发布时预览/取消选中它(我正在发布Release版本)。

我已编辑项目的.csproj文件以包含<ExcludeFilesFromDeployment>标记。

<Project...>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    ...
    <ExcludeFilesFromDeployment>Library-that-is-not-good-for-server.dll</ExcludeFilesFromDeployment>
  </PropertyGroup>

但是当我去VS2013发布时,没有任何改变/文件仍然需要取消选中。

为了以防万一,我还尝试在库前添加bin\。更不用说,会弹出一个警告,说明&#34; The element 'PropertyGroup' in namespace 'http://schemas.microsoft.com/developer/msbuild/2003' has invalid child element 'ExcludeFilesFromDeployment' in namespace 'http://schemas.microsoft.com/developer/msbuild/2003'. ......&#34;

我在搜索中找到的关于从部署中排除文件的文档,以及ExcludeFilesFromDeployment标记http://msdn.microsoft.com/en-us/library/ee942158(v=vs.110).aspx声称该说明仅适用于VS2012,部分适用于VS2010。有谁知道VS2013的变化或我做错了什么?

2 个答案:

答案 0 :(得分:6)

您需要将其添加到 profileName.pubxml 文件中。 profileName.pubxml文件位置是:

my project ----> Properties ----> PublishProfiles ---> profileName.pubxml

示例:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <ExcludeFilesFromDeployment>
    Library-that-is-not-good-for-server.dll
  </ExcludeFilesFromDeployment>

'''                '''' 

答案 1 :(得分:0)

您可能还需要在'profileName'.pubxml文件中包含以下定义:

<DeleteExistingFiles>False</DeleteExistingFiles>

在排除某些文件或目录后,请从Temp发布位置删除所有文件(通常是obj \ Release \ Package \ PackageTmp)。