Можете ли вы исключить код автоматически при использовании функции публикации в Visual Studio - PullRequest
0 голосов
/ 22 апреля 2010

Это способ исключить блок кода при использовании функции публикации в Visual Studio. Другими словами, скажите, что у меня была кнопка входа, которая сделала что-то вроде:

// Start Exclude when publishing
if (txtUserName.Text == "" && txtPassword.Password == "")
{             
  lp = new System.ServiceModel.DomainServices.Client.ApplicationServices.LoginParameters("UserName", "Password");
}
else
// Stop Exclude when publishing
{
  lp = new System.ServiceModel.DomainServices.Client.ApplicationServices.LoginParameters(txtUserName.Text, txtPassword.Password);
}

Таким образом, когда я отлаживаю, я могу просто оставить поля имени пользователя и пароля пустыми и просто нажать «Войти», и приложение войдет в систему. Но когда приложение опубликовано, компилятор игнорирует этот код и не компилирует его в приложение.

Ответы [ 3 ]

1 голос
/ 22 апреля 2010

Вы можете использовать атрибут Conditional вместе с константой DEBUG и при условии, что вы публикуете только код в конфигурации Release, который по умолчанию не определяет константу DEBUG, вы можете сделать что-то вроде этого:

static void Main(string[] args)
{
    Login("John", "Doe");
}

public static void Login(string username, string password)
{
    SetDebugCredentials(ref username, ref password);

    // Login here
    Console.WriteLine("Credentials: {0} | {1}", username, password);
}

[Conditional("DEBUG")]
public static void SetDebugCredentials(ref string username, ref string password)
{
    username = "User";
    password = "Password";
}

Этот код будет печатать имя пользователя и пароль в конфигурации отладки, а Джон Доу - в конфигурации выпуска.

0 голосов
/ 22 апреля 2010

Хотя условная компиляция и #if переключатели работают правильно в этом случае, я думаю, что вы на самом деле ищете свойство ApplicationDeployment.IsNetworkDeployed .

// Check if the application was published via ClickOnce.
if (!ApplicationDeployment.IsNetworkDeployed) {
0 голосов
/ 22 апреля 2010

вы можете использовать константу DEBUG, которая должна быть активна в настройках проекта.

Затем вы можете просто обернуть ваш код следующим образом:

 #if DEBUG
    // some code here
 #else
    //other code here
 #endif

Если нетнужно другое, не используйте его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...