Как связать внешние файлы с блоком

[edit - измененный процент загрузки процессора для учета количества процессоров.]

я вижу, что у вас есть ответ ... но код, который вы использовали, несколько больше кольцевой, чем кажется необходимым. поэтому я написал более прямую версию. [ ухмыляется ]

что он делает ...

  • использует командлеты CIM вместо WMI
    CIM немного быстрее, чем устаревшие вызовы WMI.
  • вызывает класс *_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
8
задан Community 23 May 2017 в 10:33
поделиться

7 ответов

Вы можете использовать al.exe, но также есть опция компилятора C #. Вы хотите создать многофайловую сборку, используя опцию компилятора / linkresource C #. Здесь есть инструкции , но , но команда похожа на эту:

csc /linkresource:N.dll /t:library A.cs

Где N.dll - это собственная DLL-библиотека , которая будет отправляться везде, куда направляется управляемая сборка (в том числе в GAC.) По указанной мной ссылке очень четкое описание.

3
ответ дан 5 December 2019 в 23:17
поделиться

Вы пытались создать настройку для своего решения? Существует возможность включить файлы вспомогательных файлов, ориентированные на каталог установки приложения.

Другой вариант будет включать файлы вспомогательных файлов в ресурсы сборки и распаковывать их на диск при первом запуске.

1
ответ дан 5 December 2019 в 23:17
поделиться

К сожалению, в Visual Studio, похоже, не так много встроенной поддержки для этого, хотя я определенно вижу вариант использования.

Если вы используете Subversion для своего источника контроль, то вы могли бы ссылаться на внешнюю ссылку в качестве внешнего определения. Это приведет к исходному коду, и вы будете делать ссылку на необходимую сборку в качестве ссылки на проект вместо ссылки на DLL, и тогда в игру вступит копия правил вывода каталога.

Если это невозможно другое решение будет заключаться в том, чтобы включить команды в события до / после сборки вашего проекта в решении, чтобы скопировать самые последние файлы дополнительных компонентов из удаленной сборки в сборку. Конечно, это связано с предупреждением о том, что он не настраивается автоматически, когда вы включаете DLL в свой проект;

0
ответ дан 5 December 2019 в 23:17
поделиться

Я имел дело с этим некоторое время назад. Это общая проблема.

Вы можете создать некоторые действия после сборки:

http://www.codingday.com/execute-batch-commands-before-or-after-compilation-using-pre-build-or- post-build-events /

Надеюсь, это поможет ...:)

0
ответ дан 5 December 2019 в 23:17
поделиться

Мне кажется, вы используете неправильный тип ссылки. Существует два типа ссылок: Reference и ProjectReference. Ссылка - это явная ссылка на конкретную сборку. ProjectReference - это ссылка на другой проект (скажем, .csproj).

Что вы ищете, так это ProjectReference. VS и цели MSBuild по умолчанию настроены на использование CopyLocal. Если вы установите для CopyToOutputPath значение true для файлов «sidecar», любые ProjectReferences для этого проекта теперь также будут извлекать те же файлы.

Я не уверен, что вы можете использовать ProjectReferences для разных решений в IDE. Я много имею дело с MSBuild, где файлы sln не актуальны, и вот как я с этим справляюсь.

0
ответ дан 5 December 2019 в 23:17
поделиться

Что если вы создадите модуль слияния , содержащий библиотеку и ее зависимости? Ваш установщик должен будет сослаться на этот модуль, но вы убедитесь, что все необходимые файлы будут присутствовать.

1
ответ дан 5 December 2019 в 23:17
поделиться

Что мы сделали в нашем проекте, так это то, что мы создали отдельный файл сборки для выполнения всех этих задач.

В вашем файле сборки у вас могут быть теги для построения основного решения, а затем добавьте теги для копирования файлов, которые вам нужны после сборки.

NAnt - это тоже ваш вариант, но сейчас я рад использовать Rake в качестве моей автоматизации сборки / отладки.

Поскольку это не может быть интегрировано в Visual Studio, то, что я делаю я создаю задачу (в MSBuild, NAnt или Rake), которая в конце выполняет vsjitdebugger.exe, чтобы присоединить ее к моей Visual Studio при отладке.

На данный момент это только мои стили, возможно, вы можете создать свой собственный стиль.

0
ответ дан 5 December 2019 в 23:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: