Хорошее начало прочитало бы эту статью, которые говорят о встроенном ассемблерном коде в C/C++:
http://www.codeproject.com/KB/cpp/edujini_inline_asm.aspx
Пример от статьи:
#include
int main() {
/* Add 10 and 20 and store result into register %eax */
__asm__ ( "movl $10, %eax;"
"movl $20, %ebx;"
"addl %ebx, %eax;"
);
/* Subtract 20 from 10 and store result into register %eax */
__asm__ ( "movl $10, %eax;"
"movl $20, %ebx;"
"subl %ebx, %eax;"
);
/* Multiply 10 and 20 and store result into register %eax */
__asm__ ( "movl $10, %eax;"
"movl $20, %ebx;"
"imull %ebx, %eax;"
);
return 0 ;
}
Это может показаться неубедительным, но самый простой способ сделать это - использовать два EXE-проекта в вашем решении. Метод Main
каждого из них просто вызовет метод Main
в вашем исходном EXE-проекте (который вы только что переключили на файл DLL).
Это означает, что каждый проект EXE может иметь свои собственные настройки публикации ClickOnce, а также свой собственный файл app.config
. Это означает, что у вас разные строки подключения для производственной и тестовой версии.
Другой вариант (тот, который может показаться наиболее разумным) - использовать MageUI.exe для создания ClickOnce вручную файлы, которые позволят вам выбирать другой файл конфигурации и публиковать его каждый раз при запуске инструмента. Также есть версия для командной строки (Mage. exe), чтобы теоретически это можно было автоматизировать.
Однако мы обнаружили, что решение с двумя «бегущими» проектами было намного проще. Я рекомендую вам сначала попробовать.
Я делаю это все время. У меня даже есть экран в моем приложении, который меняет версию, которую получит конкретный пользователь. И я не делаю ничего хитрого со стороны приложения, вся магия находится на веб-сервере, на котором размещены файлы ClickOnce.
Взгляните на статью, которую написал мой приятель Fine Grained Versioning with ClickOnce . Это объясняет, как мы это сделали.
Попробуйте изменить имя сборки на вкладке «Приложение» в окне «Свойства».