Code analysis, memory leaks and unneeded exceptions fixed

This commit is contained in:
Norbi Peti 2015-08-23 19:05:03 +02:00
parent dfd9579a8f
commit dc4b23976f
36 changed files with 153 additions and 179 deletions

2
.gitignore vendored
View file

@ -41,6 +41,8 @@ local.properties
*.user
*.sln.docstates
*/.vs/
# Build results
[Dd]ebug/

View file

@ -13,6 +13,8 @@
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
bmp.Dispose(); //2015.08.23.
pen.Dispose(); //2015.08.23.
if (disposing && (components != null))
{
components.Dispose();

View file

@ -10,10 +10,11 @@ D:\Z - Norbi cucca\0 Projektek\Handwriting program\Handwriting program\obj\Debug
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\Handwriting program\Handwriting program\bin\Debug\Handwriting program.dll.config
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\Handwriting program\Handwriting program\bin\Debug\Handwriting program.dll
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\Handwriting program\Handwriting program\bin\Debug\Handwriting program.pdb
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\Handwriting program\Handwriting program\obj\Debug\Handwriting program.csprojResolveAssemblyReference.cache
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\Handwriting program\Handwriting program\obj\Debug\Handwriting_program.Form1.resources
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\Handwriting program\Handwriting program\obj\Debug\Handwriting_program.Handwriting.resources
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\Handwriting program\Handwriting program\obj\Debug\Handwriting_program.Properties.Resources.resources
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\Handwriting program\Handwriting program\obj\Debug\Handwriting program.csproj.GenerateResource.Cache
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\Handwriting program\Handwriting program\obj\Debug\Handwriting program.dll
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\Handwriting program\Handwriting program\obj\Debug\Handwriting program.pdb
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\Handwriting program\Handwriting program\bin\Debug\Handwriting program.dll.CodeAnalysisLog.xml
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\Handwriting program\Handwriting program\bin\Debug\Handwriting program.dll.lastcodeanalysissucceeded

Binary file not shown.

View file

@ -13,6 +13,8 @@
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
style.Dispose(); //2015.08.23.
styleRecent.Dispose(); //2015.08.23.
if (disposing && (components != null))
{
components.Dispose();

View file

@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

View file

@ -13,40 +13,25 @@ namespace MSGer.tk
{
public partial class FloatingChatIcon : Form
{
[StructLayout(LayoutKind.Sequential)]
public struct MARGINS
{
public int Left;
public int Right;
public int Top;
public int Bottom;
}
[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern void DwmExtendFrameIntoClientArea(IntPtr hwnd, ref MARGINS margins);
[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern bool DwmIsCompositionEnabled();
public FloatingChatIcon(ChatPanel cp)
{
InitializeComponent();
}
// defines how far we are extending the Glass margins
private MARGINS margins;
private NativeMethods.MARGINS margins;
// uses PInvoke to setup the Glass area.
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (DwmIsCompositionEnabled())
if (NativeMethods.DwmIsCompositionEnabled())
{
// Paint the glass effect.
margins = new MARGINS();
margins = new NativeMethods.MARGINS();
margins.Top = -1;
margins.Left = 20;
DwmExtendFrameIntoClientArea(this.Handle, ref margins);
NativeMethods.DwmExtendFrameIntoClientArea(this.Handle, ref margins);
}
}
}

View file

@ -709,8 +709,8 @@
this.contactList.SelectionColor = System.Drawing.Color.Aqua;
this.contactList.Size = new System.Drawing.Size(494, 471);
this.contactList.TabIndex = 0;
this.contactList.ItemDoubleClicked += new System.EventHandler<int>(this.contactList_ItemDoubleClicked);
this.contactList.ItemRightClicked += new System.EventHandler<int>(this.contactList_ItemRightClicked);
this.contactList.ItemDoubleClicked += new System.EventHandler<SzNPProjects.ItemClickEventArgs>(this.contactList_ItemDoubleClicked);
this.contactList.ItemRightClicked += new System.EventHandler<SzNPProjects.ItemClickEventArgs>(this.contactList_ItemRightClicked);
//
// MainPanel
//

View file

@ -12,6 +12,7 @@ using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using SzNPProjects;
namespace MSGer.tk
{
@ -197,9 +198,9 @@ namespace MSGer.tk
}
}
private void contactList_ItemDoubleClicked(object sender, int e)
private void contactList_ItemDoubleClicked(object sender, ItemClickEventArgs e)
{
int uid = UserInfo.GetUserIDFromListID(e);
int uid = UserInfo.GetUserIDFromListID(e.ItemIndex);
OpenSendMessage(uid);
}
@ -219,10 +220,10 @@ namespace MSGer.tk
}
}
private void contactList_ItemRightClicked(object sender, int e)
private void contactList_ItemRightClicked(object sender,ItemClickEventArgs e)
{
contactList.Items[e].Selected = true;
listPartnerMenu.Tag = e;
contactList.Items[e.ItemIndex].Selected = true;
listPartnerMenu.Tag = e.ItemIndex;
listPartnerMenu.Show(Cursor.Position);
}

View file

@ -162,6 +162,7 @@
<Compile Include="Forms\SettingsPanels\SettingsPanelPersonal.Designer.cs">
<DependentUpon>SettingsPanelPersonal.cs</DependentUpon>
</Compile>
<Compile Include="NativeMethods.cs" />
<Compile Include="TextBoxHelpers.cs" />
<Compile Include="Forms\ThemeDesigner.cs">
<SubType>Form</SubType>

26
MSGer.tk/NativeMethods.cs Normal file
View file

@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace MSGer.tk
{
internal class NativeMethods
{
[StructLayout(LayoutKind.Sequential)]
public struct MARGINS
{
public int Left;
public int Right;
public int Top;
public int Bottom;
}
[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern void DwmExtendFrameIntoClientArea(IntPtr hwnd, ref MARGINS margins);
[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern bool DwmIsCompositionEnabled();
}
}

View file

@ -13,6 +13,7 @@ namespace MSGer.tk
[Serializable]
public class ScriptInAppDomain
{
[NonSerialized]
private AppDomain appdomain;
private string path;
public string Path

View file

@ -125,16 +125,24 @@ namespace MSGer.tk
byte[] cipherTextBytes;
using (var memoryStream = new MemoryStream())
//using (var memoryStream = new MemoryStream())
MemoryStream memoryStream = null;
try
{
memoryStream = new MemoryStream();
using (var cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write))
{
cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length);
cryptoStream.FlushFinalBlock();
cipherTextBytes = memoryStream.ToArray();
cryptoStream.Close();
//cryptoStream.Close();
}
memoryStream.Close();
//memoryStream.Close();
}
finally //Example of CA2202 solution
{
if (memoryStream != null)
memoryStream.Dispose();
}
byte[] final = new byte[cipherTextBytes.Length + 4];
Array.Copy(BitConverter.GetBytes(cipherTextBytes.Length), final, 4);
@ -164,7 +172,7 @@ namespace MSGer.tk
byte[] plainTextBytes = new byte[len]; //2015.04.03.
int decryptedByteCount = cryptoStream.Read(plainTextBytes, 0, plainTextBytes.Length);
memoryStream.Close();
//memoryStream.Close();
cryptoStream.Close();
byte[] ret = new byte[len];
Array.Copy(plainTextBytes, ret, len);

View file

@ -45,7 +45,7 @@ namespace MSGer.tk
var ms = new MemoryStream(buf); //2015.06.06.
ms.Seek(0, SeekOrigin.Begin); //2015.06.06.
var bitmap = new Bitmap(ms);
ms.Dispose(); //2015.06.06.
//ms.Dispose(); //2015.06.06.
Emoticon emoticon = new Emoticon(id); //2015.06.06.
bitmap.MakeTransparent(Color.White); //2015.06.06.
emoticon.Image = (Bitmap)bitmap.Clone(); //2015.07.05.
@ -54,7 +54,7 @@ namespace MSGer.tk
}
Name = Path.GetFileNameWithoutExtension(filename); //2015.06.06.
TextFormats.Add(this); //2015.06.06.
fs.Dispose(); //2015.06.06.
//fs.Dispose(); //2015.06.06.
br.Dispose(); //2015.06.06.
return true;
}

View file

@ -7,8 +7,31 @@ using System.Threading.Tasks;
namespace MSGer.tk
{
public class NoImage //TODO: Kiválasztható legyen az összes típus egy listából
public class NoImage : IDisposable //TODO: Kiválasztható legyen az összes típus egy listából
{ //2015.07.03.
public Image NoImg = new Bitmap(200, 200);
#region IDisposable Support
private bool disposedValue = false; // To detect redundant calls
protected virtual void Dispose(bool disposing)
{
if (!disposedValue)
{
if (disposing)
{
NoImg.Dispose(); //2015.08.23.
}
disposedValue = true;
}
}
// This code added to correctly implement the disposable pattern.
public void Dispose()
{
// Do not change this code. Put cleanup code in Dispose(bool disposing) above.
Dispose(true);
}
#endregion
}
}

View file

@ -14,7 +14,7 @@ using System.Text.RegularExpressions;
namespace MSGer.tk
{
public partial class UserInfo
public partial class UserInfo : IDisposable
{
/*
* 2014.03.07.
@ -221,9 +221,6 @@ namespace MSGer.tk
public UserInfo()
{
}
~UserInfo() //2014.10.09.
{
}
public void GetImageFromNetwork(int receivedupdate)
{ //Most már elvileg csak akkor hívja meg, amikor feldolgozza a kapott adatokat, tehát nem a Main Thread-ban
if (this.PicUpdateTime >= receivedupdate)
@ -439,5 +436,40 @@ namespace MSGer.tk
str = str.Remove(str.Length - 1);
return str;
}
#region IDisposable Support
private bool disposedValue = false; // To detect redundant calls
protected virtual void Dispose(bool disposing)
{
if (!disposedValue)
{
if (disposing)
{
UpdateTimer.Dispose(); //2015.08.23.
}
// TODO: free unmanaged resources (unmanaged objects) and override a finalizer below.
// TODO: set large fields to null.
disposedValue = true;
}
}
// TODO: override a finalizer only if Dispose(bool disposing) above has code to free unmanaged resources.
// ~UserInfo() {
// // Do not change this code. Put cleanup code in Dispose(bool disposing) above.
// Dispose(false);
// }
// This code added to correctly implement the disposable pattern.
public void Dispose()
{
// Do not change this code. Put cleanup code in Dispose(bool disposing) above.
Dispose(true);
// TODO: uncomment the following line if the finalizer is overridden above.
// GC.SuppressFinalize(this);
}
#endregion
}
}

View file

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="c:\program files (x86)\microsoft visual studio 12.0\team tools\static analysis tools\fxcop\Xml\CodeAnalysisReport.xsl"?>
<FxCopReport Version="12.0">
<?xml-stylesheet type="text/xsl" href="c:\program files (x86)\microsoft visual studio 14.0\team tools\static analysis tools\fxcop\Xml\CodeAnalysisReport.xsl"?>
<FxCopReport Version="14.0">
<Localized>
<String Key="Category">Category</String>
<String Key="Certainty">Certainty</String>

View file

@ -7,3 +7,5 @@ D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGerTextBox\obj\Debug\MSGe
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGerTextBox\obj\Debug\MSGerTextBox.csproj.GenerateResource.Cache
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGerTextBox\obj\Debug\MSGerTextBox.exe
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGerTextBox\obj\Debug\MSGerTextBox.pdb
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGerTextBox\bin\Debug\MSGerTextBox.exe.CodeAnalysisLog.xml
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\MSGerTextBox\bin\Debug\MSGerTextBox.exe.lastcodeanalysissucceeded

View file

@ -0,0 +1,17 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SzNPProjects
{
public class ItemClickEventArgs : EventArgs
{ //2015.08.23.
public int ItemIndex { get; private set; }
public ItemClickEventArgs(int itemindex)
{
ItemIndex = itemindex;
}
}
}

View file

@ -5,6 +5,7 @@ using System.Text;
namespace SzNPProjects
{
[Serializable]
class NoParentException : Exception
{
/*public override System.Collections.IDictionary Data

View file

@ -87,9 +87,9 @@ namespace SzNPProjects
}
RefreshList();
}
public event EventHandler<int> ItemClicked;
public event EventHandler<int> ItemDoubleClicked;
public event EventHandler<int> ItemRightClicked;
public event EventHandler<ItemClickEventArgs> ItemClicked;
public event EventHandler<ItemClickEventArgs> ItemDoubleClicked;
public event EventHandler<ItemClickEventArgs> ItemRightClicked;
#endregion
#region Properties
@ -323,7 +323,7 @@ namespace SzNPProjects
}*/
sender.Selected = true;
if (ItemClicked != null) //2014.08.30.
ItemClicked(sender, Items.IndexOf(sender));
ItemClicked(sender, new ItemClickEventArgs(Items.IndexOf(sender)));
//}
//catch(NullReferenceException)
//{
@ -337,7 +337,7 @@ namespace SzNPProjects
//var index = Items.IndexOf((RichListViewItem)sender);
var index = Items.IndexOf(sender);
if (ItemDoubleClicked != null) //2014.08.30.
ItemDoubleClicked(sender, index);
ItemDoubleClicked(sender, new ItemClickEventArgs(index));
for (int i = 0; i < Items[index].SubItems.Length; i++)
if (Items[index].SubItems[i].GetType().IsSubclassOf(typeof(TextBoxBase)))
((TextBoxBase)Items[index].SubItems[i]).SelectionLength = 0;
@ -351,7 +351,7 @@ namespace SzNPProjects
//try
//{
if (ItemRightClicked != null) //2014.08.30. - 2014.09.01. (ItemClicked javítva ItemRightClicked-re)
ItemRightClicked(sender, Items.IndexOf(sender));
ItemRightClicked(sender, new ItemClickEventArgs(Items.IndexOf(sender)));
//}
//catch (NullReferenceException)
//{

View file

@ -45,6 +45,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="ItemClickEventArgs.cs" />
<Compile Include="NoParentException.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="RichListView.cs">

View file

@ -8,8 +8,9 @@ D:\Z - Norbi cucca\0 Projektek\RichListView\RichListView\RichListView\obj\Debug\
D:\Z - Norbi cucca\0 Projektek\RichListView\RichListView\RichListView\obj\Debug\RichListView.pdb
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\RichListView\RichListView\bin\Debug\RichListView.dll
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\RichListView\RichListView\bin\Debug\RichListView.pdb
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\RichListView\RichListView\obj\Debug\RichListView.csprojResolveAssemblyReference.cache
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\RichListView\RichListView\obj\Debug\SzNPProjects.RichListView.resources
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\RichListView\RichListView\obj\Debug\RichListView.csproj.GenerateResource.Cache
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\RichListView\RichListView\obj\Debug\RichListView.dll
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\RichListView\RichListView\obj\Debug\RichListView.pdb
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\RichListView\RichListView\bin\Debug\RichListView.dll.CodeAnalysisLog.xml
D:\Z - Norbi cucca\0 Projektek\MSGer.tk\0 Repository\RichListView\RichListView\bin\Debug\RichListView.dll.lastcodeanalysissucceeded

View file

@ -88,141 +88,10 @@
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<None Include="SVN\mod_authz_svn.so">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="SVN\mod_dav_svn.so">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<Content Include="SVN\intl3_svn.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\libapr-1.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\libapriconv-1.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\libaprutil-1.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\libdb44.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\libeay32.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\libsasl.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\libsvn_client-1.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\libsvn_delta-1.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\libsvn_diff-1.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\libsvn_fs-1.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\libsvn_ra-1.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\libsvn_repos-1.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\libsvn_subr-1.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\libsvn_wc-1.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\openssl.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\pluginviewer.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\saslANONYMOUS.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\saslCRAMMD5.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\sasldblistusers2.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\saslDIGESTMD5.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\saslLOGIN.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\saslNTLM.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\saslpasswd2.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\saslPLAIN.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\saslSASLDB.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\ssleay32.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\SVN Cheat Sheet.htm">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\SVN Readme.htm">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\SVN Reference.htm">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\svn-populate-node-origins-index.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\svn-push.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\svn.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\svnadmin.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\svnauthz-validate.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\svndumpfilter.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\svnlook.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\svnmucc.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\svnserve.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\svnsync.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="SVN\svnversion.exe">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.5">
<Visible>False</Visible>