[edit - измененный процент загрузки процессора для учета количества процессоров.]
я вижу, что у вас есть ответ ... но код, который вы использовали, несколько больше кольцевой, чем кажется необходимым. поэтому я написал более прямую версию. [ ухмыляется ]
что он делает ...
*_OperatingSystem
только один раз .LoadPercentage
напрямую .NumberOfProcessors
из CIM_ComputerSystem
.LoadPercentage
элементов & amp; деление на .NumberOfProcesors
Format-List
, которые вставляли нежелательные дополнительные строки -f
для построения выходной строки Я использовал английский для этого, так как не знал формулировки на вашем языке. Я полагаю, вы можете перевести обратно на свой гораздо лучше, чем я могу ... [ ухмылка ]
$ComputerName = $env:COMPUTERNAME
$TimeStamp = Get-Date -Format 'yyyy-MM-dd HH:mm:ss'
$CIM_OS = Get-CimInstance -ClassName CIM_OperatingSystem -ComputerName $ComputerName
$CIM_CS_ProcessorCount = (Get-CimInstance -ClassName CIM_ComputerSystem).NumberOfProcessors
$FreeRAM_Pct = [math]::Round($CIM_OS.FreePhysicalMemory / $CIM_OS.TotalVisibleMemorySize * 100, 2)
$ProcLoad_Pct = [math]::Round(((Get-CimInstance -ClassName CIM_Processor -ComputerName $ComputerName).
LoadPercentage |
Measure-Object -Sum).Sum / $CIM_CS_ProcessorCount, 2)
'Time stamp = {0}; Free RAM % = {1}; Processor load % = {2}' -f $TimeStamp, $FreeRAM_Pct, $ProcLoad_Pct
вывод ...
Time stamp = 2019-03-06 06:18:04; Free RAM % = 43.61; Processor load % = 5
Вы можете использовать al.exe, но также есть опция компилятора C #. Вы хотите создать многофайловую сборку, используя опцию компилятора / linkresource C #. Здесь есть инструкции , но , но команда похожа на эту:
csc /linkresource:N.dll /t:library A.cs
Где N.dll - это собственная DLL-библиотека , которая будет отправляться везде, куда направляется управляемая сборка (в том числе в GAC.) По указанной мной ссылке очень четкое описание.
Вы пытались создать настройку для своего решения? Существует возможность включить файлы вспомогательных файлов, ориентированные на каталог установки приложения.
Другой вариант будет включать файлы вспомогательных файлов в ресурсы сборки и распаковывать их на диск при первом запуске.
К сожалению, в Visual Studio, похоже, не так много встроенной поддержки для этого, хотя я определенно вижу вариант использования.
Если вы используете Subversion для своего источника контроль, то вы могли бы ссылаться на внешнюю ссылку в качестве внешнего определения. Это приведет к исходному коду, и вы будете делать ссылку на необходимую сборку в качестве ссылки на проект вместо ссылки на DLL, и тогда в игру вступит копия правил вывода каталога.
Если это невозможно другое решение будет заключаться в том, чтобы включить команды в события до / после сборки вашего проекта в решении, чтобы скопировать самые последние файлы дополнительных компонентов из удаленной сборки в сборку. Конечно, это связано с предупреждением о том, что он не настраивается автоматически, когда вы включаете DLL в свой проект;
Я имел дело с этим некоторое время назад. Это общая проблема.
Вы можете создать некоторые действия после сборки:
Надеюсь, это поможет ...:)
Мне кажется, вы используете неправильный тип ссылки. Существует два типа ссылок: Reference и ProjectReference. Ссылка - это явная ссылка на конкретную сборку. ProjectReference - это ссылка на другой проект (скажем, .csproj).
Что вы ищете, так это ProjectReference. VS и цели MSBuild по умолчанию настроены на использование CopyLocal. Если вы установите для CopyToOutputPath значение true для файлов «sidecar», любые ProjectReferences для этого проекта теперь также будут извлекать те же файлы.
Я не уверен, что вы можете использовать ProjectReferences для разных решений в IDE. Я много имею дело с MSBuild, где файлы sln не актуальны, и вот как я с этим справляюсь.
Что если вы создадите модуль слияния , содержащий библиотеку и ее зависимости? Ваш установщик должен будет сослаться на этот модуль, но вы убедитесь, что все необходимые файлы будут присутствовать.
Что мы сделали в нашем проекте, так это то, что мы создали отдельный файл сборки для выполнения всех этих задач.
В вашем файле сборки у вас могут быть теги для построения основного решения, а затем добавьте теги для копирования файлов, которые вам нужны после сборки.
NAnt - это тоже ваш вариант, но сейчас я рад использовать Rake в качестве моей автоматизации сборки / отладки.
Поскольку это не может быть интегрировано в Visual Studio, то, что я делаю я создаю задачу (в MSBuild, NAnt или Rake), которая в конце выполняет vsjitdebugger.exe, чтобы присоединить ее к моей Visual Studio при отладке.
На данный момент это только мои стили, возможно, вы можете создать свой собственный стиль.