在Visual Studio 2013发布Web应用程序时,ExcludeFilesFromDeployment不起作用。

5

我在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\, 以防万一。更不用说,一个警告弹出来了,上面写着“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'. ...”

微软的文档在搜索中有关于从部署中排除文件和ExcludeFilesFromDeployment标签的说明,http://msdn.microsoft.com/en-us/library/ee942158(v=vs.110).aspx,声称该说明仅适用于VS2012,并部分适用于VS2010。有人知道在VS2013中发生了什么变化或者我做错了什么吗?

2个回答

8
你需要将其添加到 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
终于有机会测试了。在引用根目录下的bin文件夹中的库时,使用bin\Library-that-is-not-good-for-server.dll成功运行。 - Oppa Gingham Style
你不一定清楚需要执行 bin\some.dll,否则无法正常工作。 - Ilya Chernomordik

0

你可能需要在“profileName”.pubxml文件中添加以下定义:

<DeleteExistingFiles>False</DeleteExistingFiles>

请在排除某些文件或目录后,从您的临时发布位置(通常为obj\Release\Package\PackageTmp)中删除所有文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接