commit
76712f8b84
6 changed files with 748 additions and 0 deletions
-
523.gitignore
-
17XmppBotDemo.sln
-
133XmppBotDemo/Program.cs
-
26XmppBotDemo/Properties/AssemblyInfo.cs
-
45XmppBotDemo/XmppBotDemo.csproj
-
4XmppBotDemo/packages.config
@ -0,0 +1,523 @@ |
|||
|
|||
# Created by https://www.gitignore.io/api/visualstudio,csharp,monodevelop,git |
|||
# Edit at https://www.gitignore.io/?templates=visualstudio,csharp,monodevelop,git |
|||
|
|||
### Csharp ### |
|||
## Ignore Visual Studio temporary files, build results, and |
|||
## files generated by popular Visual Studio add-ons. |
|||
## |
|||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore |
|||
|
|||
# User-specific files |
|||
*.rsuser |
|||
*.suo |
|||
*.user |
|||
*.userosscache |
|||
*.sln.docstates |
|||
|
|||
# User-specific files (MonoDevelop/Xamarin Studio) |
|||
*.userprefs |
|||
|
|||
# Build results |
|||
[Dd]ebug/ |
|||
[Dd]ebugPublic/ |
|||
[Rr]elease/ |
|||
[Rr]eleases/ |
|||
x64/ |
|||
x86/ |
|||
bld/ |
|||
[Bb]in/ |
|||
[Oo]bj/ |
|||
[Ll]og/ |
|||
|
|||
# Visual Studio 2015/2017 cache/options directory |
|||
.vs/ |
|||
# Uncomment if you have tasks that create the project's static files in wwwroot |
|||
#wwwroot/ |
|||
|
|||
# Visual Studio 2017 auto generated files |
|||
Generated\ Files/ |
|||
|
|||
# MSTest test Results |
|||
[Tt]est[Rr]esult*/ |
|||
[Bb]uild[Ll]og.* |
|||
|
|||
# NUNIT |
|||
*.VisualState.xml |
|||
TestResult.xml |
|||
|
|||
# Build Results of an ATL Project |
|||
[Dd]ebugPS/ |
|||
[Rr]eleasePS/ |
|||
dlldata.c |
|||
|
|||
# Benchmark Results |
|||
BenchmarkDotNet.Artifacts/ |
|||
|
|||
# .NET Core |
|||
project.lock.json |
|||
project.fragment.lock.json |
|||
artifacts/ |
|||
|
|||
# StyleCop |
|||
StyleCopReport.xml |
|||
|
|||
# Files built by Visual Studio |
|||
*_i.c |
|||
*_p.c |
|||
*_h.h |
|||
*.ilk |
|||
*.meta |
|||
*.obj |
|||
*.iobj |
|||
*.pch |
|||
*.pdb |
|||
*.ipdb |
|||
*.pgc |
|||
*.pgd |
|||
*.rsp |
|||
*.sbr |
|||
*.tlb |
|||
*.tli |
|||
*.tlh |
|||
*.tmp |
|||
*.tmp_proj |
|||
*_wpftmp.csproj |
|||
*.log |
|||
*.vspscc |
|||
*.vssscc |
|||
.builds |
|||
*.pidb |
|||
*.svclog |
|||
*.scc |
|||
|
|||
# Chutzpah Test files |
|||
_Chutzpah* |
|||
|
|||
# Visual C++ cache files |
|||
ipch/ |
|||
*.aps |
|||
*.ncb |
|||
*.opendb |
|||
*.opensdf |
|||
*.sdf |
|||
*.cachefile |
|||
*.VC.db |
|||
*.VC.VC.opendb |
|||
|
|||
# Visual Studio profiler |
|||
*.psess |
|||
*.vsp |
|||
*.vspx |
|||
*.sap |
|||
|
|||
# Visual Studio Trace Files |
|||
*.e2e |
|||
|
|||
# TFS 2012 Local Workspace |
|||
$tf/ |
|||
|
|||
# Guidance Automation Toolkit |
|||
*.gpState |
|||
|
|||
# ReSharper is a .NET coding add-in |
|||
_ReSharper*/ |
|||
*.[Rr]e[Ss]harper |
|||
*.DotSettings.user |
|||
|
|||
# JustCode is a .NET coding add-in |
|||
.JustCode |
|||
|
|||
# TeamCity is a build add-in |
|||
_TeamCity* |
|||
|
|||
# DotCover is a Code Coverage Tool |
|||
*.dotCover |
|||
|
|||
# AxoCover is a Code Coverage Tool |
|||
.axoCover/* |
|||
!.axoCover/settings.json |
|||
|
|||
# Visual Studio code coverage results |
|||
*.coverage |
|||
*.coveragexml |
|||
|
|||
# NCrunch |
|||
_NCrunch_* |
|||
.*crunch*.local.xml |
|||
nCrunchTemp_* |
|||
|
|||
# MightyMoose |
|||
*.mm.* |
|||
AutoTest.Net/ |
|||
|
|||
# Web workbench (sass) |
|||
.sass-cache/ |
|||
|
|||
# Installshield output folder |
|||
[Ee]xpress/ |
|||
|
|||
# DocProject is a documentation generator add-in |
|||
DocProject/buildhelp/ |
|||
DocProject/Help/*.HxT |
|||
DocProject/Help/*.HxC |
|||
DocProject/Help/*.hhc |
|||
DocProject/Help/*.hhk |
|||
DocProject/Help/*.hhp |
|||
DocProject/Help/Html2 |
|||
DocProject/Help/html |
|||
|
|||
# Click-Once directory |
|||
publish/ |
|||
|
|||
# Publish Web Output |
|||
*.[Pp]ublish.xml |
|||
*.azurePubxml |
|||
# Note: Comment the next line if you want to checkin your web deploy settings, |
|||
# but database connection strings (with potential passwords) will be unencrypted |
|||
*.pubxml |
|||
*.publishproj |
|||
|
|||
# Microsoft Azure Web App publish settings. Comment the next line if you want to |
|||
# checkin your Azure Web App publish settings, but sensitive information contained |
|||
# in these scripts will be unencrypted |
|||
PublishScripts/ |
|||
|
|||
# NuGet Packages |
|||
*.nupkg |
|||
# The packages folder can be ignored because of Package Restore |
|||
**/[Pp]ackages/* |
|||
# except build/, which is used as an MSBuild target. |
|||
!**/[Pp]ackages/build/ |
|||
# Uncomment if necessary however generally it will be regenerated when needed |
|||
#!**/[Pp]ackages/repositories.config |
|||
# NuGet v3's project.json files produces more ignorable files |
|||
*.nuget.props |
|||
*.nuget.targets |
|||
|
|||
# Microsoft Azure Build Output |
|||
csx/ |
|||
*.build.csdef |
|||
|
|||
# Microsoft Azure Emulator |
|||
ecf/ |
|||
rcf/ |
|||
|
|||
# Windows Store app package directories and files |
|||
AppPackages/ |
|||
BundleArtifacts/ |
|||
Package.StoreAssociation.xml |
|||
_pkginfo.txt |
|||
*.appx |
|||
|
|||
# Visual Studio cache files |
|||
# files ending in .cache can be ignored |
|||
*.[Cc]ache |
|||
# but keep track of directories ending in .cache |
|||
!*.[Cc]ache/ |
|||
|
|||
# Others |
|||
ClientBin/ |
|||
~$* |
|||
*~ |
|||
*.dbmdl |
|||
*.dbproj.schemaview |
|||
*.jfm |
|||
*.pfx |
|||
*.publishsettings |
|||
orleans.codegen.cs |
|||
|
|||
# Including strong name files can present a security risk |
|||
# (https://github.com/github/gitignore/pull/2483#issue-259490424) |
|||
#*.snk |
|||
|
|||
# Since there are multiple workflows, uncomment next line to ignore bower_components |
|||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) |
|||
#bower_components/ |
|||
|
|||
# RIA/Silverlight projects |
|||
Generated_Code/ |
|||
|
|||
# Backup & report files from converting an old project file |
|||
# to a newer Visual Studio version. Backup files are not needed, |
|||
# because we have git ;-) |
|||
_UpgradeReport_Files/ |
|||
Backup*/ |
|||
UpgradeLog*.XML |
|||
UpgradeLog*.htm |
|||
ServiceFabricBackup/ |
|||
*.rptproj.bak |
|||
|
|||
# SQL Server files |
|||
*.mdf |
|||
*.ldf |
|||
*.ndf |
|||
|
|||
# Business Intelligence projects |
|||
*.rdl.data |
|||
*.bim.layout |
|||
*.bim_*.settings |
|||
*.rptproj.rsuser |
|||
|
|||
# Microsoft Fakes |
|||
FakesAssemblies/ |
|||
|
|||
# GhostDoc plugin setting file |
|||
*.GhostDoc.xml |
|||
|
|||
# Node.js Tools for Visual Studio |
|||
.ntvs_analysis.dat |
|||
node_modules/ |
|||
|
|||
# Visual Studio 6 build log |
|||
*.plg |
|||
|
|||
# Visual Studio 6 workspace options file |
|||
*.opt |
|||
|
|||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) |
|||
*.vbw |
|||
|
|||
# Visual Studio LightSwitch build output |
|||
**/*.HTMLClient/GeneratedArtifacts |
|||
**/*.DesktopClient/GeneratedArtifacts |
|||
**/*.DesktopClient/ModelManifest.xml |
|||
**/*.Server/GeneratedArtifacts |
|||
**/*.Server/ModelManifest.xml |
|||
_Pvt_Extensions |
|||
|
|||
# Paket dependency manager |
|||
.paket/paket.exe |
|||
paket-files/ |
|||
|
|||
# FAKE - F# Make |
|||
.fake/ |
|||
|
|||
# JetBrains Rider |
|||
.idea/ |
|||
*.sln.iml |
|||
|
|||
# CodeRush personal settings |
|||
.cr/personal |
|||
|
|||
# Python Tools for Visual Studio (PTVS) |
|||
__pycache__/ |
|||
*.pyc |
|||
|
|||
# Cake - Uncomment if you are using it |
|||
# tools/** |
|||
# !tools/packages.config |
|||
|
|||
# Tabs Studio |
|||
*.tss |
|||
|
|||
# Telerik's JustMock configuration file |
|||
*.jmconfig |
|||
|
|||
# BizTalk build output |
|||
*.btp.cs |
|||
*.btm.cs |
|||
*.odx.cs |
|||
*.xsd.cs |
|||
|
|||
# OpenCover UI analysis results |
|||
OpenCover/ |
|||
|
|||
# Azure Stream Analytics local run output |
|||
ASALocalRun/ |
|||
|
|||
# MSBuild Binary and Structured Log |
|||
*.binlog |
|||
|
|||
# NVidia Nsight GPU debugger configuration file |
|||
*.nvuser |
|||
|
|||
# MFractors (Xamarin productivity tool) working folder |
|||
.mfractor/ |
|||
|
|||
# Local History for Visual Studio |
|||
.localhistory/ |
|||
|
|||
### Git ### |
|||
# Created by git for backups. To disable backups in Git: |
|||
# $ git config --global mergetool.keepBackup false |
|||
*.orig |
|||
|
|||
# Created by git when using merge tools for conflicts |
|||
*.BACKUP.* |
|||
*.BASE.* |
|||
*.LOCAL.* |
|||
*.REMOTE.* |
|||
*_BACKUP_*.txt |
|||
*_BASE_*.txt |
|||
*_LOCAL_*.txt |
|||
*_REMOTE_*.txt |
|||
|
|||
### MonoDevelop ### |
|||
#User Specific |
|||
*.usertasks |
|||
|
|||
#Mono Project Files |
|||
*.resources |
|||
test-results/ |
|||
|
|||
### VisualStudio ### |
|||
## Ignore Visual Studio temporary files, build results, and |
|||
## files generated by popular Visual Studio add-ons. |
|||
## |
|||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore |
|||
|
|||
# User-specific files |
|||
|
|||
# User-specific files (MonoDevelop/Xamarin Studio) |
|||
|
|||
# Build results |
|||
|
|||
# Visual Studio 2015/2017 cache/options directory |
|||
# Uncomment if you have tasks that create the project's static files in wwwroot |
|||
#wwwroot/ |
|||
|
|||
# Visual Studio 2017 auto generated files |
|||
|
|||
# MSTest test Results |
|||
|
|||
# NUNIT |
|||
|
|||
# Build Results of an ATL Project |
|||
|
|||
# Benchmark Results |
|||
|
|||
# .NET Core |
|||
|
|||
# StyleCop |
|||
|
|||
# Files built by Visual Studio |
|||
|
|||
# Chutzpah Test files |
|||
|
|||
# Visual C++ cache files |
|||
|
|||
# Visual Studio profiler |
|||
|
|||
# Visual Studio Trace Files |
|||
|
|||
# TFS 2012 Local Workspace |
|||
|
|||
# Guidance Automation Toolkit |
|||
|
|||
# ReSharper is a .NET coding add-in |
|||
|
|||
# JustCode is a .NET coding add-in |
|||
|
|||
# TeamCity is a build add-in |
|||
|
|||
# DotCover is a Code Coverage Tool |
|||
|
|||
# AxoCover is a Code Coverage Tool |
|||
|
|||
# Visual Studio code coverage results |
|||
|
|||
# NCrunch |
|||
|
|||
# MightyMoose |
|||
|
|||
# Web workbench (sass) |
|||
|
|||
# Installshield output folder |
|||
|
|||
# DocProject is a documentation generator add-in |
|||
|
|||
# Click-Once directory |
|||
|
|||
# Publish Web Output |
|||
# Note: Comment the next line if you want to checkin your web deploy settings, |
|||
# but database connection strings (with potential passwords) will be unencrypted |
|||
|
|||
# Microsoft Azure Web App publish settings. Comment the next line if you want to |
|||
# checkin your Azure Web App publish settings, but sensitive information contained |
|||
# in these scripts will be unencrypted |
|||
|
|||
# NuGet Packages |
|||
# The packages folder can be ignored because of Package Restore |
|||
# except build/, which is used as an MSBuild target. |
|||
# Uncomment if necessary however generally it will be regenerated when needed |
|||
#!**/[Pp]ackages/repositories.config |
|||
# NuGet v3's project.json files produces more ignorable files |
|||
|
|||
# Microsoft Azure Build Output |
|||
|
|||
# Microsoft Azure Emulator |
|||
|
|||
# Windows Store app package directories and files |
|||
|
|||
# Visual Studio cache files |
|||
# files ending in .cache can be ignored |
|||
# but keep track of directories ending in .cache |
|||
|
|||
# Others |
|||
|
|||
# Including strong name files can present a security risk |
|||
# (https://github.com/github/gitignore/pull/2483#issue-259490424) |
|||
#*.snk |
|||
|
|||
# Since there are multiple workflows, uncomment next line to ignore bower_components |
|||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) |
|||
#bower_components/ |
|||
|
|||
# RIA/Silverlight projects |
|||
|
|||
# Backup & report files from converting an old project file |
|||
# to a newer Visual Studio version. Backup files are not needed, |
|||
# because we have git ;-) |
|||
|
|||
# SQL Server files |
|||
|
|||
# Business Intelligence projects |
|||
|
|||
# Microsoft Fakes |
|||
|
|||
# GhostDoc plugin setting file |
|||
|
|||
# Node.js Tools for Visual Studio |
|||
|
|||
# Visual Studio 6 build log |
|||
|
|||
# Visual Studio 6 workspace options file |
|||
|
|||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) |
|||
|
|||
# Visual Studio LightSwitch build output |
|||
|
|||
# Paket dependency manager |
|||
|
|||
# FAKE - F# Make |
|||
|
|||
# JetBrains Rider |
|||
|
|||
# CodeRush personal settings |
|||
|
|||
# Python Tools for Visual Studio (PTVS) |
|||
|
|||
# Cake - Uncomment if you are using it |
|||
# tools/** |
|||
# !tools/packages.config |
|||
|
|||
# Tabs Studio |
|||
|
|||
# Telerik's JustMock configuration file |
|||
|
|||
# BizTalk build output |
|||
|
|||
# OpenCover UI analysis results |
|||
|
|||
# Azure Stream Analytics local run output |
|||
|
|||
# MSBuild Binary and Structured Log |
|||
|
|||
# NVidia Nsight GPU debugger configuration file |
|||
|
|||
# MFractors (Xamarin productivity tool) working folder |
|||
|
|||
# Local History for Visual Studio |
|||
|
|||
# End of https://www.gitignore.io/api/visualstudio,csharp,monodevelop,git |
@ -0,0 +1,17 @@ |
|||
|
|||
Microsoft Visual Studio Solution File, Format Version 12.00 |
|||
# Visual Studio 15 |
|||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XmppBotDemo", "XmppBotDemo\XmppBotDemo.csproj", "{3F7E3AE3-CA61-4F65-9CE5-6EC30E9C00C4}" |
|||
EndProject |
|||
Global |
|||
GlobalSection(SolutionConfigurationPlatforms) = preSolution |
|||
Debug|x86 = Debug|x86 |
|||
Release|x86 = Release|x86 |
|||
EndGlobalSection |
|||
GlobalSection(ProjectConfigurationPlatforms) = postSolution |
|||
{3F7E3AE3-CA61-4F65-9CE5-6EC30E9C00C4}.Debug|x86.ActiveCfg = Debug|x86 |
|||
{3F7E3AE3-CA61-4F65-9CE5-6EC30E9C00C4}.Debug|x86.Build.0 = Debug|x86 |
|||
{3F7E3AE3-CA61-4F65-9CE5-6EC30E9C00C4}.Release|x86.ActiveCfg = Release|x86 |
|||
{3F7E3AE3-CA61-4F65-9CE5-6EC30E9C00C4}.Release|x86.Build.0 = Release|x86 |
|||
EndGlobalSection |
|||
EndGlobal |
@ -0,0 +1,133 @@ |
|||
using System; |
|||
using System.Linq; |
|||
using System.Threading; |
|||
using System.Threading.Tasks; |
|||
using S22.Xmpp; |
|||
using S22.Xmpp.Client; |
|||
using S22.Xmpp.Im; |
|||
|
|||
namespace XmppBotDemo |
|||
{ |
|||
public static class MainClass |
|||
{ |
|||
private static XmppClient client; |
|||
private static Jid ourJid = null; |
|||
private static string password = null; |
|||
|
|||
public static int Main(string[] args) |
|||
{ |
|||
// Read in the environment variables
|
|||
ourJid = new Jid(Environment.GetEnvironmentVariable("XMPP_JID")); |
|||
password = Environment.GetEnvironmentVariable("XMPP_PASSWORD"); |
|||
|
|||
// Ensure they are present
|
|||
if (ourJid == null || password == null) { |
|||
Console.Error.WriteLine("XMPP Bot Demo"); |
|||
Console.Error.WriteLine("============="); |
|||
Console.Error.WriteLine(""); |
|||
Console.Error.WriteLine("Usage:"); |
|||
Console.Error.WriteLine(" ./XmppBotDemo.exe"); |
|||
Console.Error.WriteLine(""); |
|||
Console.Error.WriteLine("Environment Variables:"); |
|||
Console.Error.WriteLine(" XMPP_JID Required. Specifies the JID to login with."); |
|||
Console.Error.WriteLine(" XMPP_PASSWORD Required. Specifies the password to login with."); |
|||
return 1; |
|||
} |
|||
|
|||
// Create the client instance
|
|||
client = new XmppClient(ourJid.Domain, ourJid.Node, password); |
|||
|
|||
client.Error += errorHandler; |
|||
client.SubscriptionRequest += subscriptionRequestHandler; |
|||
client.Message += messageHandler; |
|||
|
|||
client.Connect(); |
|||
|
|||
// Wait for a connection
|
|||
while (!client.Connected) |
|||
Thread.Sleep(100); |
|||
|
|||
Console.WriteLine($"[Main] Connected as {ourJid}."); |
|||
|
|||
// Wait forever.
|
|||
Thread.Sleep(Timeout.Infinite); |
|||
|
|||
// TODO: Automatically reconnect to the server when we get disconnected.
|
|||
|
|||
return 0; |
|||
} |
|||
|
|||
|
|||
#region Event Handlers
|
|||
|
|||
/// <summary>
|
|||
/// Handles requests to talk to us.
|
|||
/// </summary>
|
|||
/// <remarks>
|
|||
/// Only allow people to talk to us if they are on the same domain we are.
|
|||
/// You probably don't want this for production, but for developmental purposes
|
|||
/// it offers some measure of protection.
|
|||
/// </remarks>
|
|||
/// <param name="from">The JID of the remote user who wants to talk to us.</param>
|
|||
/// <returns>Whether we're going to allow the requester to talk to us or not.</returns>
|
|||
public static bool subscriptionRequestHandler(Jid from) { |
|||
Console.WriteLine($"[Handler/SubscriptionRequest] {from} is requesting access, I'm saying {(from.Domain == ourJid.Domain?"yes":"no")}"); |
|||
return from.Domain == ourJid.Domain; |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Handles incoming messages.
|
|||
/// </summary>
|
|||
private static void messageHandler(object sender, MessageEventArgs eventArgs) { |
|||
Console.WriteLine($"[Handler/Message] {eventArgs.Message.Body.Length} chars from {eventArgs.Jid}"); |
|||
char[] messageCharArray = eventArgs.Message.Body.ToCharArray(); |
|||
Array.Reverse(messageCharArray); |
|||
sendChatReply( |
|||
eventArgs.Message, |
|||
new string(messageCharArray) |
|||
); |
|||
} |
|||
|
|||
/// <summary>
|
|||
/// Handles any errors thrown by the XMPP client engine.
|
|||
/// </summary>
|
|||
private static void errorHandler(object sender, ErrorEventArgs eventArgs) { |
|||
Console.Error.WriteLine($"Error: {eventArgs.Reason}"); |
|||
Console.Error.WriteLine(eventArgs.Exception); |
|||
} |
|||
|
|||
#endregion
|
|||
|
|||
#region Message Senders
|
|||
|
|||
/// <summary>
|
|||
/// Sends a chat message to the specified JID.
|
|||
/// </summary>
|
|||
/// <param name="to">The JID to send the message to.</param>
|
|||
/// <param name="message">The messaage to send.</param>
|
|||
private static void sendChatMessage(Jid to, string message) |
|||
{ |
|||
//Console.WriteLine($"[Rhino/Send/Chat] Sending {message} -> {to}");
|
|||
client.SendMessage( |
|||
to, message, |
|||
null, null, MessageType.Chat |
|||
); |
|||
} |
|||
/// <summary>
|
|||
/// Sends a chat message in direct reply to a given incoming message.
|
|||
/// </summary>
|
|||
/// <param name="originalMessage">Original message.</param>
|
|||
/// <param name="reply">Reply.</param>
|
|||
private static void sendChatReply(Message originalMessage, string reply) |
|||
{ |
|||
//Console.WriteLine($"[Rhino/Send/Reply] Sending {reply} -> {originalMessage.From}");
|
|||
client.SendMessage( |
|||
originalMessage.From, reply, |
|||
null, originalMessage.Thread, MessageType.Chat |
|||
); |
|||
} |
|||
|
|||
|
|||
#endregion
|
|||
} |
|||
} |
@ -0,0 +1,26 @@ |
|||
using System.Reflection; |
|||
using System.Runtime.CompilerServices; |
|||
|
|||
// Information about this assembly is defined by the following attributes.
|
|||
// Change them to the values specific to your project.
|
|||
|
|||
[assembly: AssemblyTitle("XmppBotDemo")] |
|||
[assembly: AssemblyDescription("")] |
|||
[assembly: AssemblyConfiguration("")] |
|||
[assembly: AssemblyCompany("")] |
|||
[assembly: AssemblyProduct("")] |
|||
[assembly: AssemblyCopyright("sbrl")] |
|||
[assembly: AssemblyTrademark("")] |
|||
[assembly: AssemblyCulture("")] |
|||
|
|||
// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
|
|||
// The form "{Major}.{Minor}.*" will automatically update the build and revision,
|
|||
// and "{Major}.{Minor}.{Build}.*" will update just the revision.
|
|||
|
|||
[assembly: AssemblyVersion("1.0.*")] |
|||
|
|||
// The following attributes are used to specify the signing key for the assembly,
|
|||
// if desired. See the Mono documentation for more information about signing.
|
|||
|
|||
//[assembly: AssemblyDelaySign(false)]
|
|||
//[assembly: AssemblyKeyFile("")]
|
@ -0,0 +1,45 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
|||
<PropertyGroup> |
|||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
|||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform> |
|||
<ProjectGuid>{3F7E3AE3-CA61-4F65-9CE5-6EC30E9C00C4}</ProjectGuid> |
|||
<OutputType>Exe</OutputType> |
|||
<RootNamespace>XmppBotDemo</RootNamespace> |
|||
<AssemblyName>XmppBotDemo</AssemblyName> |
|||
<TargetFrameworkVersion>v4.7</TargetFrameworkVersion> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> |
|||
<DebugSymbols>true</DebugSymbols> |
|||
<DebugType>full</DebugType> |
|||
<Optimize>false</Optimize> |
|||
<OutputPath>bin\Debug</OutputPath> |
|||
<DefineConstants>DEBUG;</DefineConstants> |
|||
<ErrorReport>prompt</ErrorReport> |
|||
<WarningLevel>4</WarningLevel> |
|||
<ExternalConsole>true</ExternalConsole> |
|||
<PlatformTarget>x86</PlatformTarget> |
|||
</PropertyGroup> |
|||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> |
|||
<Optimize>true</Optimize> |
|||
<OutputPath>bin\Release</OutputPath> |
|||
<ErrorReport>prompt</ErrorReport> |
|||
<WarningLevel>4</WarningLevel> |
|||
<ExternalConsole>true</ExternalConsole> |
|||
<PlatformTarget>x86</PlatformTarget> |
|||
</PropertyGroup> |
|||
<ItemGroup> |
|||
<Reference Include="System" /> |
|||
<Reference Include="S22.Xmpp"> |
|||
<HintPath>..\packages\S22.Xmpp.1.0.0.0\lib\net45\S22.Xmpp.dll</HintPath> |
|||
</Reference> |
|||
</ItemGroup> |
|||
<ItemGroup> |
|||
<Compile Include="Program.cs" /> |
|||
<Compile Include="Properties\AssemblyInfo.cs" /> |
|||
</ItemGroup> |
|||
<ItemGroup> |
|||
<None Include="packages.config" /> |
|||
</ItemGroup> |
|||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> |
|||
</Project> |
@ -0,0 +1,4 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<packages> |
|||
<package id="S22.Xmpp" version="1.0.0.0" targetFramework="net47" /> |
|||
</packages> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue