使用msbuild与Visual Studio 2013进行发布时,DLL会有所不同

时间:2019-04-02 16:51:06

标签: visual-studio-2013 msbuild

我有一个解决方案,其中包含一些C#DLL项目和一个MVC Web项目。当我同时使用Visual Studio 2013和msbuild进行发布时,我发现DLL是不同的(根据Winmerge)。

我使用Visual Studio 2013发布项目。它使用的是带有发行版配置和ANY CPU的配置文件“发行版”。它正在执行文件系统发布。我两次发布到两个单独的目录。我使用Winmerge比较输出,发现没有差异。我发布了两次以验证DLL是否相同。

然后,我使用msbuild发布相同的项目。我使用相同的配置文件,相同的配置和相同的平台。我将msbuild生成的DLL与Visual Studio使用Winmerge创建的DLL进行了比较。它们具有相同的文件版本,但是文件的开头和结尾附近有几个字节的差异。

这是预期的吗?使用Visual Studio与手动使用msbuild进行发布时,是否存在页眉/页脚信息可能会有所不同?

我的msbuild命令如下:

C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe "c:\path\to\my.csproj" ^
    /t:Rebuild ^
    /p:Platform=AnyCPU ^
    /p:DeleteExistingFiles=true ^
    /p:PublishDestination="d:\output_path" ^
    /p:DeployOnBuild=true ^
    /p:PublishProfile=Release ^
    /p:WebPublishMethod=FileSystem ^
    /p:ExcludeApp_Data=false ^
    /p:publishUrl="d:\output_path" ^
    /p:VisualStudioVersion=12.0

我怀疑同时具有PublishDestination和publishUrl是多余的,并且也许不需要指定Platform,因为我也使用PublishProfile。我很难找到对我有帮助的文档。

0 个答案:

没有答案