Почему могут не работать NETCOREAPP#_# дефайны?
От: VladCore  
Дата: 14.06.21 15:37
Оценка: :)
В райдере запускаю — эти дефайны работают, а в dotnet publish — нет

пол дня промучился пока не нашел причину выше
никогда с таким не встречался 😞

первым делам в райдере выключил галочку "Use Resharper Build" — результат не изменился.

почему в dotnet publish они, эти #if, могут не работать?

на dotnet одна и та же ссылка что в консольном dotnet publish что в райдере
Отредактировано 14.06.2021 15:56 VladCore . Предыдущая версия .
Re: Почему могут не работать NETCOREAPP#_# дефайны?
От: Ночной Смотрящий Россия  
Дата: 14.06.21 17:31
Оценка: +2
Здравствуйте, VladCore, Вы писали:

VC>почему в dotnet publish они, эти #if, могут не работать?


Потому что эти переменные там не определены, видимо.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[2]: Почему могут не работать NETCOREAPP#_# дефайны?
От: VladCore  
Дата: 14.06.21 18:29
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

VC>>почему в dotnet publish они, эти #if, могут не работать?


НС>Потому что эти переменные там не определены, видимо.


гений. опять.
Re[3]: Почему могут не работать NETCOREAPP#_# дефайны?
От: Ночной Смотрящий Россия  
Дата: 14.06.21 19:52
Оценка:
Здравствуйте, VladCore, Вы писали:

НС>>Потому что эти переменные там не определены, видимо.

VC>гений. опять.

А разве msbuild их должен определять? По моему проще один раз прописать или сгенерить небольшой файлик и не заморачиваться разным поведением разного окружения.
    <PropertyGroup Condition="'$(TargetFramework)' == 'net11' ">
        <DefineConstants>$(DefineConstants);TARGETS_NET</DefineConstants>        
        <DefineConstants>$(DefineConstants);LESSTHAN_NET20;LESSTHAN_NET35;LESSTHAN_NET40;LESSTHAN_NET403;LESSTHAN_NET45;LESSTHAN_NET451;LESSTHAN_NET452;LESSTHAN_NET46;LESSTHAN_NET461;LESSTHAN_NET462;LESSTHAN_NET47;LESSTHAN_NET471;LESSTHAN_NET472;LESSTHAN_NET48</DefineConstants>
        <DefineConstants>$(DefineConstants);NET11_OR_GREATER</DefineConstants>
    </PropertyGroup>

Можно готовый взять тут.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[4]: Почему могут не работать NETCOREAPP#_# дефайны?
От: VladCore  
Дата: 14.06.21 20:11
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>А разве msbuild их должен определять?


C# Language Reference их определяет. Слышал про такое? https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/preprocessor-directives

По моему проще один раз прописать или сгенерить небольшой файлик и не заморачиваться разным поведением разного окружения.
НС>
НС>    <PropertyGroup Condition="'$(TargetFramework)' == 'net11' ">
НС>        <DefineConstants>$(DefineConstants);TARGETS_NET</DefineConstants>        
НС>        <DefineConstants>$(DefineConstants);LESSTHAN_NET20;LESSTHAN_NET35;LESSTHAN_NET40;LESSTHAN_NET403;LESSTHAN_NET45;LESSTHAN_NET451;LESSTHAN_NET452;LESSTHAN_NET46;LESSTHAN_NET461;LESSTHAN_NET462;LESSTHAN_NET47;LESSTHAN_NET471;LESSTHAN_NET472;LESSTHAN_NET48</DefineConstants>
НС>        <DefineConstants>$(DefineConstants);NET11_OR_GREATER</DefineConstants>
НС>    </PropertyGroup>
НС>

НС>Можно готовый взять тут.

не то. опять. и ссылка не та.
Отредактировано 14.06.2021 20:41 VladCore . Предыдущая версия .
Re[5]: Почему могут не работать NETCOREAPP#_# дефайны?
От: Ночной Смотрящий Россия  
Дата: 14.06.21 20:43
Оценка: +2
Здравствуйте, VladCore, Вы писали:

VC>C# Language Reference их определяет.


По твоей же ссылке один из вариантов почему такое может быть:

For traditional, non-SDK-style projects, you have to manually configure the conditional compilation symbols for the different target frameworks in Visual Studio via the project's properties pages.


VC>не то. опять


Ты так себя ведешь, как будто я тебе денег должен. Тебе привели пример как делают люди, вдоволь нахлебавшись тонкостей поведения разных версий студи и мсбилдов. Но если тебе хочется пройтись по граблям — флаг тебе в руки.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re: Почему могут не работать NETCOREAPP#_# дефайны?
От: VladD2 Российская Империя www.nemerle.org
Дата: 22.06.21 22:37
Оценка:
Здравствуйте, VladCore, Вы писали:

VC>почему в dotnet publish они, эти #if, могут не работать?


Ты что маленький что ли? Открой проект ручками, как тебе говорят, и пропиши все что тебе нужно руками. Можешь добавить свой таржет и прописать там печать мсбилд-свойства DefineConstants. dotnet publish тупо дергает МСБилд. Только не стандартный таркет build и т.п., а Publish (что гуглится на раз). Находишь определение этого таргета в кишках и можешь прямо в него залепить печать DefineConstants. Потом только откатить незабудь.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Почему могут не работать NETCOREAPP#_# дефайны?
От: VladCore  
Дата: 23.06.21 06:19
Оценка:
Здравствуйте, VladD2, Вы писали:

VC>>почему в dotnet publish они, эти #if, могут не работать?


VD>Ты что маленький что ли? Открой проект ручками, как тебе говорят, и пропиши все что тебе нужно руками. Можешь добавить свой таржет и прописать там печать мсбилд-свойства DefineConstants. dotnet publish тупо дергает МСБилд. Только не стандартный таркет build и т.п., а Publish (что гуглится на раз). Находишь определение этого таргета в кишках и можешь прямо в него залепить печать DefineConstants. Потом только откатить незабудь.


🤦 причем тут это.

Мы вот о чем:

Почему могут не работать NETCOREAPP#_# дефайны?

Re[3]: Почему могут не работать NETCOREAPP#_# дефайны?
От: VladD2 Российская Империя www.nemerle.org
Дата: 23.06.21 11:19
Оценка:
Здравствуйте, VladCore, Вы писали:

VC>🤦 причем тут это.


VC>Мы вот о чем:

VC>

VC>Почему могут не работать NETCOREAPP#_# дефайны?


Меняй профессию, мой тебе совет. Это клиника. Тебе все сказали, но ты по новой. Все дефайны определяются МСБилдом. Разбираться нужно в нем. И не на форуме, а лично.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Почему могут не работать NETCOREAPP#_# дефайны?
От: VladCore  
Дата: 23.06.21 11:55
Оценка:
Здравствуйте, VladD2, Вы писали:

VC>>🤦 причем тут это.


VC>>Мы вот о чем:

VC>>

VC>>Почему могут не работать NETCOREAPP#_# дефайны?


VD>Меняй профессию, мой тебе совет. Это клиника. Тебе все сказали, но ты по новой. Все дефайны определяются МСБилдом. Разбираться нужно в нем. И не на форуме, а лично.


Забей. Во вторых я уже давно разобрался.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.