У меня есть решение, которое содержит несколько проектов C # DLL и веб-проект MVC.Когда я публикуюсь с использованием Visual Studio 2013 и вручную с помощью msbuild, я нахожу, что библиотеки DLL отличаются (согласно Winmerge).
Я публикую проект с использованием Visual Studio 2013. Он использует профиль с именем «Release» с ReleaseКонфигурация и любой процессор.Это делает публикацию файловой системы.Я публикую два раза, в двух отдельных каталогах.Я сравниваю результаты с помощью Winmerge и не вижу различий.Я публикую два раза, чтобы убедиться, что библиотеки DLL идентичны.
Затем я использую msbuild для публикации того же проекта.Я использую тот же профиль, ту же конфигурацию и ту же платформу.Я сравниваю библиотеки DLL, созданные msbuild, с библиотеками, созданными в Visual Studio с помощью Winmerge.У них одинаковая версия файла, но есть различие в несколько байтов в начале и конце файла.
Ожидается ли это?Существуют ли данные верхнего / нижнего колонтитула, которые могут отличаться при публикации в 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.Мне трудно найти документацию, которая мне помогает.