Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从发布目录中删除不必要的文件_C#_Visual Studio_Deployment_Visual Studio 2015 - Fatal编程技术网

C# 从发布目录中删除不必要的文件

C# 从发布目录中删除不必要的文件,c#,visual-studio,deployment,visual-studio-2015,C#,Visual Studio,Deployment,Visual Studio 2015,我使用NSIS为我的项目创建安装程序。希望尽可能小的文件大小,我开始查看我的项目的DLL、包含的文件和PrerequeSite,并注意到以下内容都是不同的: 运行所需的最少文件,由经过教育的猜测+尝试和错误确定。我确保应用程序能够正确处理这组最小的文件 通过“发布”功能导出的用于单击一次部署的文件(不包括单击一次的特定文件) 发布目录中的文件(不包括pdb和vshost文件) VS2015似乎为每个dll生成一个xml文件。一些我不使用也不引用的DLL也被复制了。 我的问题是为什么会有这么多

我使用NSIS为我的项目创建安装程序。希望尽可能小的文件大小,我开始查看我的项目的DLL、包含的文件和PrerequeSite,并注意到以下内容都是不同的:

  • 运行所需的最少文件,由经过教育的猜测+尝试和错误确定。我确保应用程序能够正确处理这组最小的文件
  • 通过“发布”功能导出的用于单击一次部署的文件(不包括单击一次的特定文件)
  • 发布目录中的文件(不包括pdb和vshost文件)
VS2015似乎为每个dll生成一个xml文件。一些我不使用也不引用的DLL也被复制了。
我的问题是为什么会有这么多不必要的文件,我如何配置VS2015使其不在/release中?

如果将VS build log level设置为verbose,您将确切地看到生成过程中发生了什么,以及文件为什么会进入release文件夹。确定原因后,可以更改项目文件以调整预定义的行为,也可以添加生成后事件以删除生成过程生成的不需要的文件

MSBuild文件位于“C:\Program Files(x86)\MSBuild\12.0\Bin\Microsoft.Common.targets”中,对于深入了解生成过程的详细信息也非常有用


但是,如果您决定将release文件夹的内容分发到其他机器,我建议您查看一些安装软件,例如。创建包含所需文件的安装项目后,无需争夺发布文件夹内容。

Re:XML文件,您可以在“构建”下的项目属性中选择构建或不构建XML文档文件(在页面底部附近)(至少在VS2010中)。请注意“运行所需的最小文件”由于在调试和发布配置中都安装了@adv12,因此在不同的机器之间可能会有所不同,因此不选中“XML文档”复选框。它不会为我的库生成XML,但会为“EntityFramework”之类的DLL生成XML。我正在使用VS2017,我正在部署一个网站,它正在复制解决方案文件(.sln)和其他不必要的文件。为什么?