Можно ли указать аргумент командной строки для msbuild, который будет применяться только к одному проекту (т.е. уровню уровня проекта, а не уровню решения), при построении многопроектное решение?Аргумент командной строки Msbuild на уровне проекта, а не на уровне решения для изменения AssemblyName
Причина, по которой я спрашиваю, заключается в том, что я хочу включить бок о бок установки развертывания с щелчком мыши. Позвольте мне привести пример:
1) Это работает
MSBuild "C: \ Dev \ MYPROJ \ MyProj.Shell \ MyProj.Shell.csproj" /р: SkipInvalidConfigurations = истина/цель: опубликовать /p: OutputPath = "C: \ Dev \ Temp \" /p:ApplicationVersion=1.2.3.4 /p: ProductName = "My Proj"/p: Configuration = "Release"/p: Platform = "Смешанные Платформы "/ подробность: диагностический
2) Это не
MSBuild: "C: \ Dev \ MYPROJ \ MyProj.Shell \ MyProj.Shell.csproj" /р: SkipInvalidConfigurations = истина/цель: публиковать /р: OutputPath = "C: \ Dev \ Temp \"/p: ApplicationVersion = 1.2.3.4 /p: ProductName = "My Proj Test"/p: Configuration = "Release" /p: Платформа = "Смешанные платформы"/многословие: диагностический /p:AssemblyName="MyProj.Test "
Просто чтобы прояснить и вновь перебирать несколько пунктов:
- T он только разница между 1 & 2 является
/p:AssemblyName="MyProj.Text"
- Я использую
/target:publish
так это клика раз построить - Этим решения мульти-проект, и он будет строить, как, например, даже если я просто ориентируюсь на Файл csproj.
Я знаю причину, почему Пример 2 терпит неудачу, потому что это переименовывает AssemblyName каждого проекта с именем сборки прошел в, т.е. MyProj.Test. Это имеет смысл, поскольку параметры, переданные через командную строку, являются глобальными, но опять же я нацелен только на файл csproj.
В любом случае, это то, что происходит. Итак, есть ли способ передать параметр командной строки msbuild, чтобы изменить только одно свойство AssemblyName в файле MyProj.Shell.csproj?
Спасибо вам Isantipov, это законная возможность, однако, я ищу общий способ сделать это для проектов без MODIF ying файл csproj. Я подозреваю, что ответ на это просто: «Нет, вы не можете этого сделать». – SDK
Работал отлично. –
Я пытался понять это в течение 2 дней. Не понял, почему он не работает, так что спасибо вам за то, что вы достаточно хорошо понимаете проблему, чтобы правильно задать вопрос и ответить самим! – russelrillema