Miglioramenti al tracciamento e riorganizzazione progetto
- Rimosso codice obsoleto per il tracciamento dei bidder. - Introdotto tracciamento in tempo reale del bidder corrente. - Aggiunta variabile `lastKnownBidder` per monitorare cambiamenti. - Migliorata gestione dei reset del timer e registrazione bidder. - Aggiunta funzione `StopAutomation` per arresto centralizzato. - Aggiornati log per riflettere il nuovo approccio in tempo reale. - Rinominato progetto da `Mimante` a `AutoBidder`. - Creato nuovo file `AutoBidder.csproj` e aggiornati riferimenti. - Rimossi script e funzioni non più utilizzati. - Migliorata leggibilità e aggiunti controlli sui dati.
This commit is contained in:
@@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
|
|||||||
# Visual Studio Version 17
|
# Visual Studio Version 17
|
||||||
VisualStudioVersion = 17.14.36511.14
|
VisualStudioVersion = 17.14.36511.14
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mimante", "Mimante.csproj", "{9BBAEF93-DF66-432C-9349-459E272D6538}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AutoBidder", "AutoBidder.csproj", "{9BBAEF93-DF66-432C-9349-459E272D6538}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "Template", "..\Template\Template.wapproj", "{1D9DB6F9-BD2B-4B14-9F2E-104060FAAD1E}"
|
Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "Template", "..\Template\Template.wapproj", "{1D9DB6F9-BD2B-4B14-9F2E-104060FAAD1E}"
|
||||||
EndProject
|
EndProject
|
||||||
@@ -454,7 +454,7 @@ namespace AutoBidder
|
|||||||
DateTime lastDecisionLog = DateTime.MinValue;
|
DateTime lastDecisionLog = DateTime.MinValue;
|
||||||
DateTime lastMissingLogUtc = DateTime.MinValue;
|
DateTime lastMissingLogUtc = DateTime.MinValue;
|
||||||
DateTime lastSuccessfulRead = DateTime.UtcNow;
|
DateTime lastSuccessfulRead = DateTime.UtcNow;
|
||||||
DateTime lastBidderUpdate = DateTime.MinValue; // ⭐ NUOVO: per limitare frequency update bidders
|
string lastKnownBidder = ""; // ⭐ traccia ultimo bidder per rilevare cambiamenti
|
||||||
|
|
||||||
const string ultraFastScript = @"
|
const string ultraFastScript = @"
|
||||||
(function(){
|
(function(){
|
||||||
@@ -510,6 +510,16 @@ namespace AutoBidder
|
|||||||
if(m) priceVal = m[1];
|
if(m) priceVal = m[1];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ⭐ LETTURA BIDDER CORRENTE (aggiunto al main script per efficienza)
|
||||||
|
var currentBidder = null;
|
||||||
|
var bidderEl = document.querySelector('.auction-current-winner, .current-bidder, .last-bidder, .winner-name');
|
||||||
|
if(bidderEl) {
|
||||||
|
var bidderName = (bidderEl.textContent||bidderEl.innerText||'').trim();
|
||||||
|
if(bidderName && bidderName.length > 0 && bidderName.length < 50) {
|
||||||
|
currentBidder = bidderName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Bottone - ricerca diretta e velocissima
|
// Bottone - ricerca diretta e velocissima
|
||||||
var btn = null;
|
var btn = null;
|
||||||
var btnSels = ['a.auction-btn-bid:not([disabled])', '.auction-btn-bid:not([disabled])', 'a.bid-button'];
|
var btnSels = ['a.auction-btn-bid:not([disabled])', '.auction-btn-bid:not([disabled])', 'a.bid-button'];
|
||||||
@@ -519,7 +529,7 @@ namespace AutoBidder
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(btn && /\b(INIZIA|STARTING|RIAPRE)\b/i.test(btn.textContent||'')) {
|
if(btn && /\b(INIZIA|STARTING|RIAPRE)\b/i.test(btn.textContent||'')) {
|
||||||
return JSON.stringify({status:'soon', price: priceVal, btnFound: true});
|
return JSON.stringify({status:'soon', price: priceVal, btnFound: true, currentBidder: currentBidder});
|
||||||
}
|
}
|
||||||
|
|
||||||
// Timer DOM (fallback)
|
// Timer DOM (fallback)
|
||||||
@@ -536,9 +546,9 @@ namespace AutoBidder
|
|||||||
|
|
||||||
var result;
|
var result;
|
||||||
if(!btn) {
|
if(!btn) {
|
||||||
result = JSON.stringify({status:'no-button', price: priceVal});
|
result = JSON.stringify({status:'no-button', price: priceVal, currentBidder: currentBidder});
|
||||||
} else if(!finalTimer) {
|
} else if(!finalTimer) {
|
||||||
result = JSON.stringify({status:'no-timer', price: priceVal, btnFound: true});
|
result = JSON.stringify({status:'no-timer', price: priceVal, btnFound: true, currentBidder: currentBidder});
|
||||||
} else {
|
} else {
|
||||||
result = JSON.stringify({
|
result = JSON.stringify({
|
||||||
status:'found',
|
status:'found',
|
||||||
@@ -548,6 +558,7 @@ namespace AutoBidder
|
|||||||
domTimer: domTimerVal,
|
domTimer: domTimerVal,
|
||||||
price: priceVal,
|
price: priceVal,
|
||||||
btnFound: true,
|
btnFound: true,
|
||||||
|
currentBidder: currentBidder,
|
||||||
timestamp: now
|
timestamp: now
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -556,64 +567,6 @@ namespace AutoBidder
|
|||||||
window._abCache = {data: result, timestamp: now};
|
window._abCache = {data: result, timestamp: now};
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
} catch(e) {
|
|
||||||
return JSON.stringify({status:'error', error: e.message});
|
|
||||||
}
|
|
||||||
})();";
|
|
||||||
|
|
||||||
const string getLastBidderScript = @"
|
|
||||||
(function(){
|
|
||||||
try {
|
|
||||||
var el = document.querySelector('.auction-current-winner, .current-bidder, .last-bidder');
|
|
||||||
if(el) {
|
|
||||||
var name = (el.textContent||'').trim();
|
|
||||||
if(name && name.length > 0 && name.length < 50)
|
|
||||||
return JSON.stringify({status:'found', bidder: name});
|
|
||||||
}
|
|
||||||
return JSON.stringify({status:'not-found'});
|
|
||||||
} catch(e) {
|
|
||||||
return JSON.stringify({status:'error', error: e.message});
|
|
||||||
}
|
|
||||||
})();";
|
|
||||||
|
|
||||||
// ⭐⭐⭐ NUOVO SCRIPT: Legge TUTTA la cronologia puntate dalla tabella
|
|
||||||
const string getAllBiddersScript = @"
|
|
||||||
(function(){
|
|
||||||
try {
|
|
||||||
var bidders = {};
|
|
||||||
|
|
||||||
// Cerca la tabella cronologia (auction-history, bid-history, ecc.)
|
|
||||||
var historyTable = document.querySelector('#DStorico, .auction-history table, .bid-history table, table.table-condensed');
|
|
||||||
|
|
||||||
if(historyTable) {
|
|
||||||
var rows = historyTable.querySelectorAll('tbody tr');
|
|
||||||
|
|
||||||
for(var i = 0; i < rows.length; i++) {
|
|
||||||
var cells = rows[i].querySelectorAll('td');
|
|
||||||
if(cells.length >= 4) {
|
|
||||||
// Ultima colonna (4a) di solito è l'username
|
|
||||||
var username = (cells[3].textContent || cells[3].innerText || '').trim();
|
|
||||||
|
|
||||||
// Filtro nomi validi
|
|
||||||
if(username && username.length > 0 && username.length < 50 && username !== ' ') {
|
|
||||||
if(bidders[username]) {
|
|
||||||
bidders[username]++;
|
|
||||||
} else {
|
|
||||||
bidders[username] = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Converti in array
|
|
||||||
var result = [];
|
|
||||||
for(var name in bidders) {
|
|
||||||
result.push({name: name, count: bidders[name]});
|
|
||||||
}
|
|
||||||
|
|
||||||
return JSON.stringify({status:'found', bidders: result});
|
|
||||||
|
|
||||||
} catch(e) {
|
} catch(e) {
|
||||||
return JSON.stringify({status:'error', error: e.message});
|
return JSON.stringify({status:'error', error: e.message});
|
||||||
}
|
}
|
||||||
@@ -622,7 +575,7 @@ namespace AutoBidder
|
|||||||
Log("🚀 Loop ULTRA-AGGRESSIVO avviato!");
|
Log("🚀 Loop ULTRA-AGGRESSIVO avviato!");
|
||||||
Log("⚡ Strategia: Polling lento >2s, MASSIMA reattività <2s");
|
Log("⚡ Strategia: Polling lento >2s, MASSIMA reattività <2s");
|
||||||
Log("📊 Lettura diretta variabili JavaScript Bidoo");
|
Log("📊 Lettura diretta variabili JavaScript Bidoo");
|
||||||
Log("👥 Tracciamento COMPLETO cronologia puntate");
|
Log("👥 Tracciamento REAL-TIME puntate utenti");
|
||||||
|
|
||||||
while (!token.IsCancellationRequested)
|
while (!token.IsCancellationRequested)
|
||||||
{
|
{
|
||||||
@@ -634,44 +587,6 @@ namespace AutoBidder
|
|||||||
try { await FetchUserNameAsync(); } catch { }
|
try { await FetchUserNameAsync(); } catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
// ⭐ AGGIORNA LISTA BIDDERS ogni 2 secondi leggendo la tabella cronologia
|
|
||||||
if ((DateTime.UtcNow - lastBidderUpdate) > TimeSpan.FromSeconds(2))
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
var biddersResult = await ExecuteScriptWithTimeoutAsync(getAllBiddersScript, TimeSpan.FromMilliseconds(1000), token);
|
|
||||||
if (!string.IsNullOrEmpty(biddersResult))
|
|
||||||
{
|
|
||||||
using var jd = JsonDocument.Parse(biddersResult ?? "{}");
|
|
||||||
if (jd.RootElement.GetProperty("status").GetString() == "found")
|
|
||||||
{
|
|
||||||
var biddersArray = jd.RootElement.GetProperty("bidders");
|
|
||||||
|
|
||||||
// Aggiorna dizionario bidders
|
|
||||||
foreach (var bidder in biddersArray.EnumerateArray())
|
|
||||||
{
|
|
||||||
var name = bidder.GetProperty("name").GetString() ?? "";
|
|
||||||
var count = bidder.GetProperty("count").GetInt32();
|
|
||||||
|
|
||||||
if (!string.IsNullOrWhiteSpace(name))
|
|
||||||
{
|
|
||||||
// Aggiorna sempre con il count più alto
|
|
||||||
if (!_bidders.ContainsKey(name) || _bidders[name].Count < count)
|
|
||||||
{
|
|
||||||
_bidders[name] = (count, DateTime.Now);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
UpdateBiddersGrid();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch { }
|
|
||||||
|
|
||||||
lastBidderUpdate = DateTime.UtcNow;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ⚡ ESECUZIONE SCRIPT ULTRA-VELOCE con timeout ridotto
|
// ⚡ ESECUZIONE SCRIPT ULTRA-VELOCE con timeout ridotto
|
||||||
string? result = null;
|
string? result = null;
|
||||||
try
|
try
|
||||||
@@ -727,7 +642,7 @@ namespace AutoBidder
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(result) && result.Length >= 2 && result[0] == '"' && result[^1] == '"')
|
if (!string.IsNullOrEmpty(result) && result.Length >= 2 && result[0] == '"' && result[^1] == '"' )
|
||||||
{
|
{
|
||||||
try { result = JsonSerializer.Deserialize<string>(result) ?? result; } catch { }
|
try { result = JsonSerializer.Deserialize<string>(result) ?? result; } catch { }
|
||||||
}
|
}
|
||||||
@@ -751,6 +666,24 @@ namespace AutoBidder
|
|||||||
var root = doc.RootElement;
|
var root = doc.RootElement;
|
||||||
var status = root.GetProperty("status").GetString() ?? string.Empty;
|
var status = root.GetProperty("status").GetString() ?? string.Empty;
|
||||||
|
|
||||||
|
// ⭐ LETTURA BIDDER CORRENTE dal risultato principale
|
||||||
|
string? currentBidder = null;
|
||||||
|
if (root.TryGetProperty("currentBidder", out var bidderProp) && bidderProp.ValueKind != JsonValueKind.Null)
|
||||||
|
{
|
||||||
|
currentBidder = bidderProp.GetString();
|
||||||
|
|
||||||
|
// ⭐ LOG quando cambia il bidder E REGISTRA IMMEDIATAMENTE
|
||||||
|
if (!string.IsNullOrWhiteSpace(currentBidder) && currentBidder != lastKnownBidder)
|
||||||
|
{
|
||||||
|
Log($"👤 Puntata di: {currentBidder}");
|
||||||
|
|
||||||
|
// ⭐ REGISTRA SUBITO LA PUNTATA NELLA LISTA
|
||||||
|
RegisterBidder(currentBidder);
|
||||||
|
|
||||||
|
lastKnownBidder = currentBidder;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch (status)
|
switch (status)
|
||||||
{
|
{
|
||||||
case "no-button":
|
case "no-button":
|
||||||
@@ -799,8 +732,6 @@ namespace AutoBidder
|
|||||||
{
|
{
|
||||||
Log($"⏱️ Timer: {timerValue}s");
|
Log($"⏱️ Timer: {timerValue}s");
|
||||||
}
|
}
|
||||||
|
|
||||||
previousTimer = timerValue;
|
|
||||||
|
|
||||||
if (root.TryGetProperty("price", out var pEl) && pEl.ValueKind != JsonValueKind.Null)
|
if (root.TryGetProperty("price", out var pEl) && pEl.ValueKind != JsonValueKind.Null)
|
||||||
{
|
{
|
||||||
@@ -831,37 +762,33 @@ namespace AutoBidder
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (double.TryParse(timerValue, NumberStyles.Any, CultureInfo.InvariantCulture, out var currentTimer) &&
|
// ⭐ FIX CONTATORE RESET: Confronta con previousTimer PRIMA di aggiornarlo
|
||||||
double.TryParse(previousTimer, NumberStyles.Any, CultureInfo.InvariantCulture, out var prevTimer))
|
if (!string.IsNullOrEmpty(timerValue) && !string.IsNullOrEmpty(previousTimer))
|
||||||
{
|
{
|
||||||
if (previousTimer != null && currentTimer > prevTimer + 0.5 && prevTimer < 30)
|
if (double.TryParse(timerValue, NumberStyles.Any, CultureInfo.InvariantCulture, out var currentTimer) &&
|
||||||
|
double.TryParse(previousTimer, NumberStyles.Any, CultureInfo.InvariantCulture, out var prevTimer))
|
||||||
{
|
{
|
||||||
resetCount++;
|
// ⭐ Reset detectato: timer corrente > precedente + soglia E timer precedente era basso
|
||||||
await Dispatcher.InvokeAsync(() => ResetCountText.Text = resetCount.ToString());
|
if (currentTimer > prevTimer + 0.5 && prevTimer < 30)
|
||||||
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
var bidderResult = await ExecuteScriptWithTimeoutAsync(getLastBidderScript, TimeSpan.FromMilliseconds(800), token);
|
resetCount++;
|
||||||
if (!string.IsNullOrEmpty(bidderResult))
|
await Dispatcher.InvokeAsync(() => ResetCountText.Text = resetCount.ToString());
|
||||||
|
|
||||||
|
// ⭐ Usa currentBidder invece di fare una nuova query
|
||||||
|
var winnerName = !string.IsNullOrWhiteSpace(currentBidder) ? currentBidder : "Sconosciuto";
|
||||||
|
Log($"🔄 Reset #{resetCount} - Winner: {winnerName}");
|
||||||
|
|
||||||
|
if (resetCount >= maxResets)
|
||||||
{
|
{
|
||||||
using var jd = JsonDocument.Parse(bidderResult ?? "{}");
|
StopAutomation($"Limite reset raggiunto: {resetCount}");
|
||||||
if (jd.RootElement.GetProperty("status").GetString() == "found")
|
return;
|
||||||
{
|
|
||||||
var bidder = jd.RootElement.GetProperty("bidder").GetString() ?? "Sconosciuto";
|
|
||||||
RegisterBidder(bidder);
|
|
||||||
Log($"🔄 Reset #{resetCount} - Winner: {bidder}");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { Log($"🔄 Reset #{resetCount}"); }
|
|
||||||
|
|
||||||
if (resetCount >= maxResets)
|
|
||||||
{
|
|
||||||
StopAutomation($"Limite reset raggiunto: {resetCount}");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ⭐ Aggiorna previousTimer DOPO il check del reset
|
||||||
|
previousTimer = timerValue;
|
||||||
|
|
||||||
bool shouldClick = false;
|
bool shouldClick = false;
|
||||||
int clickTimerValue = 0;
|
int clickTimerValue = 0;
|
||||||
@@ -899,8 +826,18 @@ namespace AutoBidder
|
|||||||
{
|
{
|
||||||
clickCount++;
|
clickCount++;
|
||||||
await Dispatcher.InvokeAsync(() => ClickCountText.Text = clickCount.ToString());
|
await Dispatcher.InvokeAsync(() => ClickCountText.Text = clickCount.ToString());
|
||||||
RegisterBidder(_currentUserName);
|
|
||||||
Log($"✅ Click #{clickCount} - Timer: {timerValue}s (Delay: {clickDelayMs}ms)");
|
// ⭐ Usa il nome utente corrente (mai AutoBidder se abbiamo il nome)
|
||||||
|
if (!string.IsNullOrWhiteSpace(_currentUserName))
|
||||||
|
{
|
||||||
|
RegisterBidder(_currentUserName);
|
||||||
|
Log($"✅ Click #{clickCount} ({_currentUserName}) - Timer: {timerValue}s (Delay: {clickDelayMs}ms)");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// ⭐ NON registrare AutoBidder nella lista, solo nel log
|
||||||
|
Log($"✅ Click #{clickCount} (AutoBidder) - Timer: {timerValue}s (Delay: {clickDelayMs}ms)");
|
||||||
|
}
|
||||||
|
|
||||||
if (clickCount >= maxClicks)
|
if (clickCount >= maxClicks)
|
||||||
{
|
{
|
||||||
@@ -1129,11 +1066,38 @@ namespace AutoBidder
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void StopAutomation(string reason)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
_cts?.Cancel();
|
||||||
|
_automationTask?.Wait();
|
||||||
|
}
|
||||||
|
catch { }
|
||||||
|
|
||||||
|
_cts = null;
|
||||||
|
_automationTask = null;
|
||||||
|
|
||||||
|
Dispatcher.Invoke(() =>
|
||||||
|
{
|
||||||
|
StartButton.IsEnabled = true;
|
||||||
|
StopButton.IsEnabled = false;
|
||||||
|
StartButton.Opacity = 1.0;
|
||||||
|
StopButton.Opacity = 0.5;
|
||||||
|
});
|
||||||
|
|
||||||
|
Log("🔴 Automazione fermata: " + reason);
|
||||||
|
}
|
||||||
|
|
||||||
private void RegisterBidder(string? bidderName)
|
private void RegisterBidder(string? bidderName)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var name = !string.IsNullOrWhiteSpace(bidderName) ? bidderName.Trim() : "AutoBidder";
|
// ⭐ FIX: Non usa più "AutoBidder" come fallback se il nome è vuoto
|
||||||
|
if (string.IsNullOrWhiteSpace(bidderName))
|
||||||
|
return;
|
||||||
|
|
||||||
|
var name = bidderName.Trim();
|
||||||
var now = DateTime.Now;
|
var now = DateTime.Now;
|
||||||
|
|
||||||
if (_bidders.ContainsKey(name))
|
if (_bidders.ContainsKey(name))
|
||||||
@@ -1145,29 +1109,11 @@ namespace AutoBidder
|
|||||||
_bidders[name] = (1, now);
|
_bidders[name] = (1, now);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (name != "AutoBidder" && _bidders.ContainsKey("AutoBidder"))
|
|
||||||
{
|
|
||||||
_bidders.Remove("AutoBidder");
|
|
||||||
}
|
|
||||||
|
|
||||||
UpdateBiddersGrid();
|
UpdateBiddersGrid();
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
}
|
}
|
||||||
|
|
||||||
private void StopAutomation(string reason)
|
|
||||||
{
|
|
||||||
try { _cts?.Cancel(); } catch { }
|
|
||||||
Dispatcher.Invoke(() =>
|
|
||||||
{
|
|
||||||
StartButton.IsEnabled = true;
|
|
||||||
StopButton.IsEnabled = false;
|
|
||||||
StartButton.Opacity = 1.0;
|
|
||||||
StopButton.Opacity = 0.5;
|
|
||||||
});
|
|
||||||
Log("⏹️ STOP: " + reason);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void StopButton_Click(object sender, RoutedEventArgs e)
|
private void StopButton_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
StartButton.Opacity = 1.0;
|
StartButton.Opacity = 1.0;
|
||||||
|
|||||||
@@ -56,7 +56,6 @@
|
|||||||
<DefaultLanguage>it-IT</DefaultLanguage>
|
<DefaultLanguage>it-IT</DefaultLanguage>
|
||||||
<AppxPackageSigningEnabled>True</AppxPackageSigningEnabled>
|
<AppxPackageSigningEnabled>True</AppxPackageSigningEnabled>
|
||||||
<NoWarn>$(NoWarn);NU1702</NoWarn>
|
<NoWarn>$(NoWarn);NU1702</NoWarn>
|
||||||
<EntryPointProjectUniqueName>..\Mimante\Mimante.csproj</EntryPointProjectUniqueName>
|
|
||||||
<GenerateAppInstallerFile>False</GenerateAppInstallerFile>
|
<GenerateAppInstallerFile>False</GenerateAppInstallerFile>
|
||||||
<PackageCertificateThumbprint>D5FEC70BCE9E14BFEE2C9ABEFA81AA4FEE3A851A</PackageCertificateThumbprint>
|
<PackageCertificateThumbprint>D5FEC70BCE9E14BFEE2C9ABEFA81AA4FEE3A851A</PackageCertificateThumbprint>
|
||||||
<AppxPackageSigningTimestampDigestAlgorithm>SHA256</AppxPackageSigningTimestampDigestAlgorithm>
|
<AppxPackageSigningTimestampDigestAlgorithm>SHA256</AppxPackageSigningTimestampDigestAlgorithm>
|
||||||
@@ -65,6 +64,7 @@
|
|||||||
<GenerateTestArtifacts>True</GenerateTestArtifacts>
|
<GenerateTestArtifacts>True</GenerateTestArtifacts>
|
||||||
<AppxBundlePlatforms>x86|x64|arm|arm64</AppxBundlePlatforms>
|
<AppxBundlePlatforms>x86|x64|arm|arm64</AppxBundlePlatforms>
|
||||||
<HoursBetweenUpdateChecks>24</HoursBetweenUpdateChecks>
|
<HoursBetweenUpdateChecks>24</HoursBetweenUpdateChecks>
|
||||||
|
<EntryPointProjectUniqueName>..\Mimante\AutoBidder.csproj</EntryPointProjectUniqueName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM'">
|
||||||
<AppxBundle>Always</AppxBundle>
|
<AppxBundle>Always</AppxBundle>
|
||||||
@@ -117,6 +117,6 @@
|
|||||||
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.26100.6584" PrivateAssets="all" />
|
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.26100.6584" PrivateAssets="all" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Mimante\Mimante.csproj" />
|
<ProjectReference Include="..\Mimante\AutoBidder.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
Reference in New Issue
Block a user