← All posts tagged .net

The name of the project, used for the assembly name as well as the name of the package. The top level folder name is used if this property is not specified.
docs.microsoft.com


Если вы собираете проект и не можете найти нужные ассембляйки — скорее всего они на месте, но под другим именем

*teamcity *гавно

Ели вы столкнулись с проблемой перекомпиляции проектов, даже если сорцы не менялись — скорее всего проблема связана с AssemblyAttributes.cs файцлом, который генерит MSBuild.

Этот файл генерится всего с одной целью — добавить TargetFrameworkAttribute в вашу сборку. Но вместо того что бы по старинке добавить его в AssemblyInfo.cs средствами студии — MS решили пойти новым путем.

А проблема даже не с самим AssemblyAttributes.cs файлом, а с тем что он ложится в TEMP папку системы. А если папку почистить или поменять — файл пересоздасться и будет новее собранных ранее асембляек — тадам! вот и перекомпиляция.

А теперь накладываем на это TeamCity которая переопределяет TEMP в окружении на свою папку, которую чистит после каждого билда. И получаем постоянную перекомпиляцию проектов.

Лечится переопределением пути к AssemblyAttributes.cs файлу в проекте:

<PropertyGroup>
<TargetFrameworkMonikerAssemblyAttributesPath>$([System.IO.Path]::Combine('$(IntermediateOutputPath)','$(TargetFrameworkMoniker).AssemblyAttributes$(DefaultLanguageSourceExtension)'))</TargetFrameworkMonikerAssemblyAttributesPath>
</PropertyGroup>


blogs.msdn.com
stackoverflow.com
stackoverflow.com