Как настроить csproject так, чтобы «Добавить как ссылку» только в режиме выпуска, но не в режиме отладки?C#

Место общения программистов C#
Ответить
Anonymous
 Как настроить csproject так, чтобы «Добавить как ссылку» только в режиме выпуска, но не в режиме отладки?

Сообщение Anonymous »

Я говорю о csproject в VS 2022, ориентированном на .Net framework 4.8
Можно ли как-нибудь по-разному настроить параметры режима отладки и выпуска? Точнее, я хочу включить файл *.tt в csproject только в режиме выпуска, но не в режиме отладки. Другими словами, следующий параметр в csproject


Properties\AssemblyCopyright.tt
TextTemplatingFileGenerator
AssemblyCopyright.cs



Должен быть активирован только во время компиляции для отладки, а не для выпуска.
Мотивация:
Я хочу динамически генерировать уведомление об авторских правах на основе текущего года, поэтому я использую для этого способ создания шаблона кода. Но процесс компиляции становится медленным. Поэтому я хочу динамически генерировать уведомление об авторских правах только в режиме выпуска, когда я делаю сборки для своих пользователей, а не когда я отлаживаю и тестирую свое программное обеспечение.
Изменить:< /strong>
Похоже, что предложение () из ответа и комментарий не работает. Я написал очень простую программу со следующим содержимым csproj, но уведомление об авторских правах по-прежнему генерируется как в режиме DEBUG, так и в режиме RELEASE.




Debug
AnyCPU
{333D8793-BFF2-47E0-902D-FA2BC8D797C0}
Exe
WithoutCopyExe
WithoutCopyExe
v4.8
512
true
true


AnyCPU
true
full
false
bin\Debug\
DEBUG;TRACE
prompt
4


AnyCPU
pdbonly
true
bin\Release\
TRACE
prompt
4














AssemblyCopyright.tt
True
True











TextTemplatingFileGenerator
AssemblyCopyright.cs





файл tt


// Generate copyright dynamically. https://stackoverflow.com/a/19314275

using System;
using System.Reflection;

[assembly: AssemblyCopyright("Hurray @ ")]

Вот мой файл AssemblyInfo.cs; обратите внимание, что авторские права не определены
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("CopyrightNotice")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("CopyrightNotice")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("d6e52005-9be0-4571-b3fc-37c36c8c963b")]

// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]



Подробнее здесь: https://stackoverflow.com/questions/784 ... but-not-in
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»