Насколько мой опыт идет, выражение параметра оценено сначала и получает значение уровня. Сама переменная увеличена, прежде чем функция вызвана, потому что компилятор не заботится, используете ли Вы выражение в качестве параметра или иначе... Все, что это знает, - то, что это должно увеличить значение и получить старое значение как результат выражения.
Однако, по-моему, код как это действительно неаккуратен, с тех пор путем попытки быть умным, он делает, необходимо думать дважды о том, что действительно происходит.
Обычно это происходит, когда свойство OutputPath файла проекта пустое. Файлы проекта - это просто файлы MSBuild . Для редактирования в Visual Studio: щелкните проект правой кнопкой мыши, выберите «Выгрузить проект», затем щелкните правой кнопкой мыши выгруженный проект и выберите «Изменить ...».
Найдите группу свойств Release-Versionincrement. Он должен выглядеть примерно так:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release-VersionIncrement|AnyCPU' ">
<OutputPath>bin\Release-VersionIncrement\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<Optimize>true</Optimize>
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
<CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
<ErrorReport>prompt</ErrorReport>
</PropertyGroup>
Важный путь - OutputPath, существует ли он для вашего файла проекта? Если нет, добавьте и попробуйте еще раз.
Проблема была связана с конфигурацией моего проекта. Вот сценарий:
Ссылки на решение A:
Проект X ссылается на проект Y
Проект Y
Решение B (то, которое я пытаюсь создать) ссылки:
Project X Проект Z
Мое решение заключалось в том, чтобы создать конфигурацию с тем же именем для Решения A, перестроить ее, а затем перестроить Решение B. Это устранило проблему.
У меня была такая же проблема, когда я сначала использовал MSBuild. Мое решение: обязательно использовать свойство OutputPath. Как это:
msbuild XXX.csproj /p:OutputPath=bin\Debug.
Я также видел эту ошибку, когда наш агент сборки был настроен для запуска платформы « Любой ЦП » (с пробелами, как показано в Visual Studio), а не « Любой ЦП » (один слово, указанное в файле проекта).